From 3bcd32f3bad2c48694a33b239067d483c73437c2 Mon Sep 17 00:00:00 2001 From: dcode Date: Tue, 2 Apr 2019 10:12:57 +0200 Subject: [PATCH] directize --- src/builtins.ts | 117 +- src/compiler.ts | 88 +- src/program.ts | 16 +- std/assembly/array.ts | 43 +- std/assembly/arraybuffer.ts | 13 +- std/assembly/builtins.ts | 4 + std/assembly/collector/README.md | 3 + std/assembly/collector/dummy.ts | 6 + std/assembly/collector/index.d.ts | 1 + std/assembly/collector/itcm.ts | 33 +- std/assembly/dataview.ts | 7 +- std/assembly/fixedarray.ts | 17 +- std/assembly/gc.ts | 16 +- std/assembly/index.d.ts | 2 + std/assembly/map.ts | 24 +- std/assembly/runtime.ts | 52 +- std/assembly/set.ts | 16 +- std/assembly/string.ts | 51 +- std/assembly/typedarray.ts | 4 +- std/assembly/util/number.ts | 10 +- std/assembly/util/runtime.ts | 36 + tests/compiler/assert-nonnull.optimized.wat | 6 +- tests/compiler/assert-nonnull.untouched.wat | 6 +- tests/compiler/call-super.optimized.wat | 4 +- tests/compiler/call-super.untouched.wat | 18 +- tests/compiler/class.optimized.wat | 6 +- tests/compiler/class.untouched.wat | 7 +- tests/compiler/constructor.optimized.wat | 351 +++--- tests/compiler/constructor.untouched.wat | 553 ++++---- tests/compiler/exports.optimized.wat | 4 +- tests/compiler/exports.untouched.wat | 18 +- tests/compiler/gc.optimized.wat | 147 ++- tests/compiler/gc.untouched.wat | 175 +-- tests/compiler/gc/_dummy.ts | 11 + tests/compiler/gc/global-assign.optimized.wat | 9 +- tests/compiler/gc/global-assign.untouched.wat | 29 +- tests/compiler/gc/global-init.optimized.wat | 9 +- tests/compiler/gc/global-init.untouched.wat | 29 +- tests/compiler/gc/itcm/trace.optimized.wat | 554 ++++---- tests/compiler/gc/itcm/trace.ts | 2 +- tests/compiler/gc/itcm/trace.untouched.wat | 731 +++++------ .../gc/rc/global-assign.optimized.wat | 4 +- .../gc/rc/global-assign.untouched.wat | 18 +- .../compiler/gc/rc/global-init.optimized.wat | 4 +- .../compiler/gc/rc/global-init.untouched.wat | 18 +- tests/compiler/getter-call.optimized.wat | 4 +- tests/compiler/getter-call.untouched.wat | 18 +- tests/compiler/inlining.optimized.wat | 4 +- tests/compiler/inlining.untouched.wat | 18 +- tests/compiler/number.optimized.wat | 10 +- tests/compiler/number.untouched.wat | 30 +- .../optional-typeparameters.optimized.wat | 4 +- .../optional-typeparameters.untouched.wat | 18 +- tests/compiler/std/array-access.optimized.wat | 8 +- tests/compiler/std/array-access.untouched.wat | 20 +- .../compiler/std/array-literal.optimized.wat | 48 +- .../compiler/std/array-literal.untouched.wat | 176 ++- tests/compiler/std/array.optimized.wat | 529 ++++---- tests/compiler/std/array.untouched.wat | 1109 ++++++++--------- tests/compiler/std/arraybuffer.optimized.wat | 86 +- tests/compiler/std/arraybuffer.untouched.wat | 105 +- tests/compiler/std/dataview.optimized.wat | 146 ++- tests/compiler/std/dataview.ts | 4 + tests/compiler/std/dataview.untouched.wat | 169 ++- tests/compiler/std/date.optimized.wat | 4 +- tests/compiler/std/date.untouched.wat | 18 +- tests/compiler/std/hash.untouched.wat | 4 +- tests/compiler/std/map.optimized.wat | 29 +- tests/compiler/std/map.untouched.wat | 442 +++---- tests/compiler/std/new.optimized.wat | 4 +- tests/compiler/std/new.untouched.wat | 18 +- .../compiler/std/object-literal.optimized.wat | 18 +- .../compiler/std/object-literal.untouched.wat | 82 +- .../std/operator-overloading.optimized.wat | 4 +- .../std/operator-overloading.untouched.wat | 18 +- tests/compiler/std/runtime.optimized.wat | 42 +- tests/compiler/std/runtime.ts | 12 +- tests/compiler/std/runtime.untouched.wat | 88 +- tests/compiler/std/set.optimized.wat | 29 +- tests/compiler/std/set.untouched.wat | 422 +++---- tests/compiler/std/static-array.optimized.wat | 14 +- tests/compiler/std/static-array.untouched.wat | 30 +- tests/compiler/std/string-utf8.optimized.wat | 12 +- tests/compiler/std/string-utf8.untouched.wat | 28 +- tests/compiler/std/string.optimized.wat | 83 +- tests/compiler/std/string.untouched.wat | 216 ++-- tests/compiler/std/symbol.optimized.wat | 8 +- tests/compiler/std/symbol.untouched.wat | 28 +- tests/compiler/std/typedarray.optimized.wat | 503 ++++---- tests/compiler/std/typedarray.ts | 4 +- tests/compiler/std/typedarray.untouched.wat | 902 +++++++------- 91 files changed, 4225 insertions(+), 4615 deletions(-) create mode 100644 std/assembly/util/runtime.ts diff --git a/src/builtins.ts b/src/builtins.ts index 3fc6030d..d89be118 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -135,6 +135,7 @@ export namespace BuiltinSymbols { export const changetype = "~lib/builtins/changetype"; export const assert = "~lib/builtins/assert"; export const unchecked = "~lib/builtins/unchecked"; + export const call_direct = "~lib/builtins/call_direct"; export const call_indirect = "~lib/builtins/call_indirect"; export const instantiate = "~lib/builtins/instantiate"; @@ -477,14 +478,17 @@ export namespace BuiltinSymbols { export const memory_reset = "~lib/memory/memory.reset"; // std/runtime.ts - export const classId = "~lib/runtime/classId"; - export const iterateRoots = "~lib/runtime/iterateRoots"; + export const runtime_id = "~lib/runtime/__runtime_id"; export const runtime_allocate = "~lib/runtime/runtime.allocate"; export const runtime_reallocate = "~lib/runtime/runtime.reallocate"; export const runtime_register = "~lib/runtime/runtime.register"; export const runtime_discard = "~lib/runtime/runtime.discard"; export const runtime_makeArray = "~lib/runtime/runtime.makeArray"; + // std/gc.ts + export const gc_mark_roots = "~lib/gc/__gc_mark_roots"; + export const gc_mark_members = "~lib/gc/__gc_mark_members"; + // std/typedarray.ts export const Int8Array = "~lib/typedarray/Int8Array"; export const Uint8Array = "~lib/typedarray/Uint8Array"; @@ -532,6 +536,8 @@ export function compileCall( // below, but rather done to make this file easier to work with. If there was a general rule it'd // most likely be "three or more instructions that only differ in their actual opcode". + var directize = false; + switch (prototype.internalName) { // === Static type evaluation ================================================================= @@ -2337,6 +2343,7 @@ export function compileCall( if (!alreadyUnchecked) flow.unset(FlowFlags.UNCHECKED_CONTEXT); return expr; } + case BuiltinSymbols.call_direct: directize = true; case BuiltinSymbols.call_indirect: { // call_indirect(target: Function | u32, ...args: *[]) -> T if ( checkTypeOptional(typeArguments, reportNode, compiler, true) | @@ -2370,14 +2377,21 @@ export function compileCall( let typeRef = module.getFunctionTypeBySignature(nativeReturnType, nativeParamTypes); if (!typeRef) typeRef = module.addFunctionType(typeName, nativeReturnType, nativeParamTypes); compiler.currentType = returnType; - // if the index expression is precomputable to a constant value, emit a direct call - if (getExpressionId(arg0 = module.precomputeExpression(arg0)) == ExpressionId.Const) { - assert(getExpressionType(arg0) == NativeType.I32); - let index = getConstValueI32(arg0); - let functionTable = compiler.functionTable; - if (index >= 0 && index < functionTable.length) { - return module.createCall(functionTable[index], operandExprs, nativeReturnType); + if (directize) { + // if the index expression is precomputable to a constant value, emit a direct call + if (getExpressionId(arg0 = module.precomputeExpression(arg0)) == ExpressionId.Const) { + assert(getExpressionType(arg0) == NativeType.I32); + let index = getConstValueI32(arg0); + let functionTable = compiler.functionTable; + if (index >= 0 && index < functionTable.length) { + return module.createCall(functionTable[index], operandExprs, nativeReturnType); + } } + compiler.error( + DiagnosticCode.Operation_not_supported, + operands[0].range + ); + return module.createUnreachable(); } // of course this can easily result in a 'RuntimeError: function signature mismatch' trap and // thus must be used with care. it exists because it *might* be useful in specific scenarios. @@ -3624,7 +3638,7 @@ export function compileCall( // === Internal runtime ======================================================================= - case BuiltinSymbols.classId: { + case BuiltinSymbols.runtime_id: { let type = evaluateConstantType(compiler, typeArguments, operands, reportNode); compiler.currentType = Type.u32; if (!type) return module.createUnreachable(); @@ -3636,38 +3650,21 @@ export function compileCall( ); return module.createUnreachable(); } - let classId = classReference.ensureClassId(compiler); // involves compile steps + let id = classReference.ensureId(compiler); // involves compile steps compiler.currentType = Type.u32; - return module.createI32(classId); + return module.createI32(id); } - case BuiltinSymbols.iterateRoots: { + case BuiltinSymbols.gc_mark_roots: { if ( checkTypeAbsent(typeArguments, reportNode, prototype) | - checkArgsRequired(operands, 1, reportNode, compiler) + checkArgsRequired(operands, 0, reportNode, compiler) ) { compiler.currentType = Type.void; return module.createUnreachable(); } - let expr = compiler.compileExpressionRetainType(operands[0], Type.u32, WrapMode.NONE); - let type = compiler.currentType; - let signatureReference = type.signatureReference; - if ( - !type.is(TypeFlags.REFERENCE) || - !signatureReference || - signatureReference.parameterTypes.length != 1 || - signatureReference.parameterTypes[0] != compiler.options.usizeType - ) { - compiler.error( - DiagnosticCode.Type_0_is_not_assignable_to_type_1, - reportNode.range, type.toString(), "(ref: usize) => void" - ); - compiler.currentType = Type.void; - return module.createUnreachable(); - } - // just emit a call even if the function doesn't yet exist - compiler.needsIterateRoots = true; + compiler.needsTraverse = true; compiler.currentType = Type.void; - return module.createCall("~iterateRoots", [ expr ], NativeType.None); + return module.createCall(BuiltinSymbols.gc_mark_roots, null, NativeType.None); } } @@ -4052,13 +4049,15 @@ export function compileAbort( ]); } -/** Compiles the iterateRoots function if required. */ -export function compileIterateRoots(compiler: Compiler): void { +/** Compiles the mark_roots function if required. */ +export function compileMarkRoots(compiler: Compiler): void { var module = compiler.module; var exprs = new Array(); - var typeName = Signature.makeSignatureString([ Type.i32 ], Type.void); - var typeRef = compiler.ensureFunctionType([ Type.i32 ], Type.void); + var typeRef = compiler.ensureFunctionType(null, Type.void); var nativeSizeType = compiler.options.nativeSizeType; + var markRef = assert(compiler.program.markRef); + + compiler.compileFunction(markRef); for (let element of compiler.program.elementsByName.values()) { if (element.kind != ElementKind.GLOBAL) continue; @@ -4073,43 +4072,51 @@ export function compileIterateRoots(compiler: Compiler): void { let value = global.constantIntegerValue; if (i64_low(value) || i64_high(value)) { exprs.push( - module.createCallIndirect( - module.createGetLocal(0, NativeType.I32), - [ - compiler.options.isWasm64 - ? module.createI64(i64_low(value), i64_high(value)) - : module.createI32(i64_low(value)) - ], - typeName - ) + module.createCall(markRef.internalName, [ + compiler.options.isWasm64 + ? module.createI64(i64_low(value), i64_high(value)) + : module.createI32(i64_low(value)) + ], NativeType.None) ); } } else { exprs.push( module.createIf( module.createTeeLocal( - 1, + 0, module.createGetGlobal(global.internalName, nativeSizeType) ), - module.createCallIndirect( - module.createGetLocal(0, NativeType.I32), - [ - module.createGetLocal(1, nativeSizeType) - ], - typeName - ) + module.createCall(markRef.internalName, [ + module.createGetLocal(0, nativeSizeType) + ], NativeType.None) ) ); } } } - module.addFunction("~iterateRoots", typeRef, [ nativeSizeType ], + module.addFunction(BuiltinSymbols.gc_mark_roots, typeRef, [ nativeSizeType ], exprs.length ? module.createBlock(null, exprs) : module.createNop() ); } +// TODO +export function compileMarkMembers(compiler: Compiler): void { + var module = compiler.module; + var ftype = compiler.ensureFunctionType(null, Type.void); + + var names = new Array(); + var current = module.createSwitch(names, "invalid", module.createGetLocal(0, NativeType.I32)); + + module.addFunction(BuiltinSymbols.gc_mark_members, ftype, [], module.createBlock(null, [ + module.createBlock("invalid", [ + current + ]), + module.createUnreachable() + ])); +} + // Helpers /** Evaluates the constant type of a type argument *or* expression. */ diff --git a/src/compiler.ts b/src/compiler.ts index 41d643a3..32bc0799 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6,7 +6,7 @@ import { compileCall as compileBuiltinCall, compileAbort, - compileIterateRoots, + compileMarkRoots, BuiltinSymbols } from "./builtins"; @@ -309,8 +309,8 @@ export class Compiler extends DiagnosticEmitter { argcVar: GlobalRef = 0; /** Argument count helper setter. */ argcSet: FunctionRef = 0; - /** Indicates whether the iterateRoots function must be generated. */ - needsIterateRoots: bool = false; + /** Indicates whether the traverseRoots function must be generated. */ + needsTraverse: bool = false; /** Compiles a {@link Program} to a {@link Module} using the specified options. */ static compile(program: Program, options: Options | null = null): Module { @@ -444,7 +444,10 @@ export class Compiler extends DiagnosticEmitter { } // set up gc - if (this.needsIterateRoots) compileIterateRoots(this); + if (this.needsTraverse) { + compileMarkRoots(this); + // compileMarkMembers(this); + } // expose module capabilities var capabilities = Capability.NONE; @@ -1409,7 +1412,7 @@ export class Compiler extends DiagnosticEmitter { } else { let length = stringValue.length; let buffer = new Uint8Array(rtHeaderSize + (length << 1)); - program.writeRuntimeHeader(buffer, 0, stringInstance.ensureClassId(this), length << 1); + program.writeRuntimeHeader(buffer, 0, stringInstance.ensureId(this), length << 1); for (let i = 0; i < length; ++i) { writeI16(stringValue.charCodeAt(i), buffer, rtHeaderSize + (i << 1)); } @@ -1435,7 +1438,7 @@ export class Compiler extends DiagnosticEmitter { var runtimeHeaderSize = program.runtimeHeaderSize; var buf = new Uint8Array(runtimeHeaderSize + byteLength); - program.writeRuntimeHeader(buf, 0, bufferInstance.ensureClassId(this), byteLength); + program.writeRuntimeHeader(buf, 0, bufferInstance.ensureId(this), byteLength); var pos = runtimeHeaderSize; var nativeType = elementType.toNativeType(); switch (nativeType) { @@ -1522,7 +1525,7 @@ export class Compiler extends DiagnosticEmitter { var arrayLength = i32(bufferLength / elementType.byteSize); var buf = new Uint8Array(runtimeHeaderSize + arrayInstanceSize); - program.writeRuntimeHeader(buf, 0, arrayInstance.ensureClassId(this), arrayInstanceSize); + program.writeRuntimeHeader(buf, 0, arrayInstance.ensureId(this), arrayInstanceSize); var bufferAddress32 = i64_low(bufferSegment.offset) + runtimeHeaderSize; assert(!program.options.isWasm64); // TODO @@ -5950,6 +5953,7 @@ export class Compiler extends DiagnosticEmitter { // create the trampoline element var trampolineSignature = new Signature(originalParameterTypes, commonReturnType, commonThisType); trampolineSignature.requiredParameters = maxArguments; + trampolineSignature.parameterNames = originalSignature.parameterNames; trampoline = new Function( original.name + "|trampoline", original.prototype, @@ -6122,12 +6126,15 @@ export class Compiler extends DiagnosticEmitter { ) ) ) { // inline into the call + let previousFlow = this.currentFlow; + this.currentFlow = instance.flow; operands.push(this.compileExpression( parameterNodes[i].initializer, parameterTypes[i], ConversionKind.IMPLICIT, WrapMode.NONE )); + this.currentFlow = previousFlow; continue; } } @@ -6821,7 +6828,7 @@ export class Compiler extends DiagnosticEmitter { // makeArray(length, classId, alignLog2, staticBuffer) let expr = this.makeCallDirect(assert(program.makeArrayInstance), [ module.createI32(length), - module.createI32(arrayInstance.ensureClassId(this)), + module.createI32(arrayInstance.ensureId(this)), program.options.isWasm64 ? module.createI64(elementType.alignLog2) : module.createI32(elementType.alignLog2), @@ -6855,7 +6862,7 @@ export class Compiler extends DiagnosticEmitter { module.createSetLocal(tempThis.index, this.makeCallDirect(makeArrayInstance, [ module.createI32(length), - module.createI32(arrayInstance.ensureClassId(this)), + module.createI32(arrayInstance.ensureId(this)), program.options.isWasm64 ? module.createI64(elementType.alignLog2) : module.createI32(elementType.alignLog2), @@ -8116,7 +8123,7 @@ export class Compiler extends DiagnosticEmitter { ? module.createI64(classInstance.currentMemoryOffset) : module.createI32(classInstance.currentMemoryOffset) ], reportNode), - module.createI32(classInstance.ensureClassId(this)) + module.createI32(classInstance.ensureId(this)) ], reportNode); } } @@ -8321,7 +8328,7 @@ export class Compiler extends DiagnosticEmitter { module.createBreak(label, module.createBinary(BinaryOp.EqI32, // classId == class.id module.createTeeLocal(idTemp.index, idExpr), - module.createI32(classInstance.ensureClassId(this)) + module.createI32(classInstance.ensureId(this)) ), module.createI32(1) // ? true ) @@ -8337,24 +8344,24 @@ export class Compiler extends DiagnosticEmitter { return module.createBlock(label, conditions, NativeType.I32); } - /** Reserves the function index / class id for the following `makeIterate` operation. */ - makeIterateReserve(classInstance: Class): u32 { + /** Reserves the function index / class id for the following `makeTraverse` operation. */ + makeTraverseReserve(classInstance: Class): u32 { var functionTable = this.functionTable; var functionIndex = functionTable.length; - functionTable.push(classInstance.iterateName); + functionTable.push(classInstance.internalName + "~traverse"); return functionIndex; } - /** Makes the managed iteration function of the specified class. */ - makeIterate(classInstance: Class, functionIndex: i32): void { + /** Makes the managed traversal function of the specified class. */ + makeTraverse(classInstance: Class, functionIndex: i32): void { var program = this.program; assert(classInstance.type.isManaged(program)); // check if the class implements a custom iteration function (only valid for library elements) var members = classInstance.members; if (classInstance.isDeclaredInLibrary) { - if (members !== null && members.has("__iterate")) { - let iterPrototype = members.get("__iterate")!; + if (members !== null && members.has("__traverse")) { + let iterPrototype = members.get("__traverse")!; assert(iterPrototype.kind == ElementKind.FUNCTION_PROTOTYPE); let iterInstance = assert(program.resolver.resolveFunction(iterPrototype, null)); assert(iterInstance.is(CommonFlags.PRIVATE | CommonFlags.INSTANCE)); @@ -8362,10 +8369,9 @@ export class Compiler extends DiagnosticEmitter { assert(!iterInstance.isAny(CommonFlags.AMBIENT | CommonFlags.VIRTUAL)); let signature = iterInstance.signature; let parameterTypes = signature.parameterTypes; - assert(parameterTypes.length == 1); - assert(parameterTypes[0].signatureReference); + assert(parameterTypes.length == 0); assert(signature.returnType == Type.void); - iterInstance.internalName = classInstance.iterateName; + iterInstance.internalName = classInstance.internalName + "~traverse"; assert(this.compileFunction(iterInstance)); this.ensureFunctionTableEntry(iterInstance); return; @@ -8394,29 +8400,28 @@ export class Compiler extends DiagnosticEmitter { // remember the function index so we don't recurse infinitely var functionTable = this.functionTable; - var functionName = classInstance.iterateName; + var functionName = classInstance.internalName + "~traverse"; assert(functionIndex < functionTable.length); assert(functionTable[functionIndex] == functionName); - var fnSig = Signature.makeSignatureString([ usizeType ], Type.void); - this.ensureFunctionType([ usizeType ], Type.void); - // if the class extends a base class, call its hook first var baseInstance = classInstance.base; if (baseInstance) { let baseType = baseInstance.type; - let baseClassId = baseInstance.ensureClassId(this); + let baseClassId = baseInstance.ensureId(this); assert(baseType.isManaged(program)); body.push( - // BASECLASS~iterate.call(this, fn) + // BASECLASS~traverse.call(this) module.createCall(functionTable[baseClassId], [ - module.createGetLocal(0, nativeSizeType), - module.createGetLocal(1, NativeType.I32) + module.createGetLocal(0, nativeSizeType) ], NativeType.None) ); } - // iterate references assigned to own fields + var markRef = assert(program.markRef); + var hasRefFields = false; + + // traverse references assigned to own fields if (members) { for (let member of members.values()) { if (member.kind == ElementKind.FIELD) { @@ -8424,13 +8429,14 @@ export class Compiler extends DiagnosticEmitter { let fieldType = (member).type; if (fieldType.isManaged(program)) { let fieldClass = fieldType.classReference!; - let fieldClassId = fieldClass.ensureClassId(this); + let fieldClassId = fieldClass.ensureId(this); let fieldOffset = (member).memoryOffset; assert(fieldOffset >= 0); + hasRefFields = true; body.push( - // if ($2 = value) { fn($2); FIELDCLASS~iterate($2, fn); } + // if ($1 = value) FIELDCLASS~traverse($1) module.createIf( - module.createTeeLocal(2, + module.createTeeLocal(1, module.createLoad( nativeSizeSize, false, @@ -8440,15 +8446,11 @@ export class Compiler extends DiagnosticEmitter { ) ), module.createBlock(null, [ - module.createCallIndirect( - module.createGetLocal(1, NativeType.I32), - [ - module.createGetLocal(2, nativeSizeType) - ], fnSig - ), + module.createCall(markRef.internalName, [ + module.createGetLocal(1, nativeSizeType) + ], NativeType.None), module.createCall(functionTable[fieldClassId], [ - module.createGetLocal(2, nativeSizeType), - module.createGetLocal(1, NativeType.I32) + module.createGetLocal(1, nativeSizeType) ], NativeType.None) ]) ) @@ -8459,10 +8461,12 @@ export class Compiler extends DiagnosticEmitter { } } + if (hasRefFields) this.compileFunction(markRef); + // add the function to the module and return its table index module.addFunction( functionName, - this.ensureFunctionType([ Type.u32 ], Type.void, options.usizeType), + this.ensureFunctionType(null, Type.void, options.usizeType), members ? [ nativeSizeType ] : null, module.createBlock(null, body) ); diff --git a/src/program.ts b/src/program.ts index bbe534f2..ba34c071 100644 --- a/src/program.ts +++ b/src/program.ts @@ -389,6 +389,8 @@ export class Program extends DiagnosticEmitter { retainRef: Function | null = null; /** Reference release implementation, if present: `__ref_release(ref: usize): void` */ releaseRef: Function | null = null; + /** Reference mark implementation, if present: `__ref_mark(ref: usize): void` */ + markRef: Function | null = null; /** Next class id. */ nextClassId: u32 = 1; @@ -861,6 +863,9 @@ export class Program extends DiagnosticEmitter { assert(element.kind == ElementKind.FUNCTION_PROTOTYPE); this.unlinkRef = this.resolver.resolveFunction(element, null); } + element = assert(this.lookupGlobal("__ref_mark")); + assert(element.kind == ElementKind.FUNCTION_PROTOTYPE); + this.markRef = this.resolver.resolveFunction(element, null); this.collectorKind = CollectorKind.TRACING; } else if (element = this.lookupGlobal("__ref_retain")) { assert(element.kind == ElementKind.FUNCTION_PROTOTYPE); @@ -3012,7 +3017,7 @@ export class Class extends TypedElement { private _id: u32 = 0; /** Ensures that this class has an id. */ - ensureClassId(compiler: Compiler): i32 { + ensureId(compiler: Compiler): i32 { var id = this._id; if (!id) { assert(!this.hasDecorator(DecoratorFlags.UNMANAGED)); @@ -3022,8 +3027,8 @@ export class Class extends TypedElement { // class's id so it can call the id directly, which avoids to generate // a helper function with a big switch mapping ids to function indexes. // here: might be called recursively in makeIterate, so reserve the id. - this._id = id = compiler.makeIterateReserve(this); - compiler.makeIterate(this, id); + this._id = id = compiler.makeTraverseReserve(this); + compiler.makeTraverse(this, id); } else { // counting GC or none just increments without any iterate functions this._id = id = program.nextClassId++; @@ -3053,11 +3058,6 @@ export class Class extends TypedElement { ); } - /** Gets the name of this class's GC iteration function. */ - get iterateName(): string { - return this.internalName + "~iterate"; - } - /** Constructs a new class. */ constructor( /** Name incl. type parameters, i.e. `Foo`. */ diff --git a/std/assembly/array.ts b/std/assembly/array.ts index a2a2c32c..1f0ad150 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -1,8 +1,9 @@ /// -import { runtime, classId } from "./runtime"; -import { ArrayBuffer, ArrayBufferView } from "./arraybuffer"; +import { MAX_BYTELENGTH } from "./util/runtime"; import { COMPARATOR, SORT } from "./util/sort"; +import { runtime, __runtime_id } from "./runtime"; +import { ArrayBuffer, ArrayBufferView } from "./arraybuffer"; import { itoa, dtoa, itoa_stream, dtoa_stream, MAX_DOUBLE_LENGTH } from "./util/number"; import { isArray as builtin_isArray } from "./builtins"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_EMPTYARRAY, E_HOLEYARRAY } from "./util/error"; @@ -10,7 +11,7 @@ import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_EMPTYARRAY, E_HOLEYARRAY } from " /** Ensures that the given array has _at least_ the specified capacity. */ function ensureCapacity(array: ArrayBufferView, minCapacity: i32, alignLog2: u32): void { if (minCapacity > array.dataLength >>> alignLog2) { - if (minCapacity > (runtime.MAX_BYTELENGTH >>> alignLog2)) throw new RangeError(E_INVALIDLENGTH); + if (minCapacity > (MAX_BYTELENGTH >>> alignLog2)) throw new RangeError(E_INVALIDLENGTH); let oldData = array.data; let newByteLength = minCapacity << alignLog2; let newData = runtime.reallocate(changetype(oldData), newByteLength); // registers on move @@ -40,8 +41,8 @@ export class Array extends ArrayBufferView { } static create(capacity: i32 = 0): Array { - if (capacity > runtime.MAX_BYTELENGTH >>> alignof()) throw new RangeError(E_INVALIDLENGTH); - var array = changetype>(runtime.makeArray(capacity, classId>(), alignof())); + if (capacity > MAX_BYTELENGTH >>> alignof()) throw new RangeError(E_INVALIDLENGTH); + var array = changetype>(runtime.makeArray(capacity, __runtime_id>(), alignof())); memory.fill(array.dataStart, 0, array.dataLength); array.length_ = 0; // ! return array; @@ -231,7 +232,7 @@ export class Array extends ArrayBufferView { concat(other: Array): Array { var thisLen = this.length_; var otherLen = select(0, other.length_, other === null); - var out = changetype>(runtime.makeArray(thisLen + otherLen, classId>(), alignof())); + var out = changetype>(runtime.makeArray(thisLen + otherLen, __runtime_id>(), alignof())); var outStart = out.dataStart; var thisSize = thisLen << alignof(); if (isManaged()) { @@ -319,7 +320,7 @@ export class Array extends ArrayBufferView { map(callbackfn: (value: T, index: i32, array: Array) => U): Array { var length = this.length_; - var out = changetype>(runtime.makeArray(length, classId>(), alignof())); + var out = changetype>(runtime.makeArray(length, __runtime_id>(), alignof())); var outStart = out.dataStart; for (let index = 0; index < min(length, this.length_); ++index) { let value = load(this.dataStart + (index << alignof())); @@ -345,7 +346,7 @@ export class Array extends ArrayBufferView { } filter(callbackfn: (value: T, index: i32, array: Array) => bool): Array { - var result = changetype>(runtime.makeArray(0, classId>(), alignof())); + var result = changetype>(runtime.makeArray(0, __runtime_id>(), alignof())); for (let index = 0, length = this.length_; index < min(length, this.length_); ++index) { let value = load(this.dataStart + (index << alignof())); if (callbackfn(value, index, this)) result.push(value); @@ -433,7 +434,7 @@ export class Array extends ArrayBufferView { begin = begin < 0 ? max(begin + length, 0) : min(begin, length); end = end < 0 ? max(end + length, 0) : min(end , length); length = max(end - begin, 0); - var slice = changetype>(runtime.makeArray(length, classId>(), alignof())); + var slice = changetype>(runtime.makeArray(length, __runtime_id>(), alignof())); var sliceBase = slice.dataStart; var thisBase = this.dataStart + (begin << alignof()); if (isManaged()) { @@ -465,7 +466,7 @@ export class Array extends ArrayBufferView { var length = this.length_; start = start < 0 ? max(length + start, 0) : min(start, length); deleteCount = max(min(deleteCount, length - start), 0); - var result = changetype>(runtime.makeArray(deleteCount, classId>(), alignof())); + var result = changetype>(runtime.makeArray(deleteCount, __runtime_id>(), alignof())); var resultStart = result.dataStart; var thisStart = this.dataStart; var thisBase = thisStart + (start << alignof()); @@ -595,7 +596,7 @@ export class Array extends ArrayBufferView { runtime.discard(result); return trimmed; // registered in .substring } - return changetype(runtime.register(result, classId())); + return changetype(runtime.register(result, __runtime_id())); } private join_int(separator: string = ","): string { @@ -632,7 +633,7 @@ export class Array extends ArrayBufferView { runtime.discard(result); return trimmed; // registered in .substring } - return changetype(runtime.register(result, classId())); + return changetype(runtime.register(result, __runtime_id())); } private join_flt(separator: string = ","): string { @@ -677,7 +678,7 @@ export class Array extends ArrayBufferView { runtime.discard(result); return trimmed; // registered in .substring } - return changetype(runtime.register(result, classId())); + return changetype(runtime.register(result, __runtime_id())); } private join_str(separator: string = ","): string { @@ -723,7 +724,7 @@ export class Array extends ArrayBufferView { changetype(value).length << 1 ); } - return changetype(runtime.register(result, classId())); + return changetype(runtime.register(result, __runtime_id())); } private join_arr(separator: string = ","): string { @@ -795,7 +796,7 @@ export class Array extends ArrayBufferView { runtime.discard(result); return out; // registered in .substring } - return changetype(runtime.register(result, classId())); + return changetype(runtime.register(result, __runtime_id())); } toString(): string { @@ -804,8 +805,8 @@ export class Array extends ArrayBufferView { // GC integration - @unsafe private __iterate(fn: (ref: usize) => void): void { - fn(changetype(this.data)); + @unsafe private __traverse(): void { + __ref_mark(changetype(this.data)); if (isManaged()) { let cur = this.dataStart; let end = cur + this.dataLength; @@ -813,12 +814,12 @@ export class Array extends ArrayBufferView { let val = load(cur); if (isNullable()) { if (val) { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } else { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } cur += sizeof(); } diff --git a/std/assembly/arraybuffer.ts b/std/assembly/arraybuffer.ts index 558983e0..c186a5a4 100644 --- a/std/assembly/arraybuffer.ts +++ b/std/assembly/arraybuffer.ts @@ -1,4 +1,5 @@ -import { runtime, HEADER, HEADER_SIZE, classId } from "./runtime"; +import { HEADER, HEADER_SIZE, MAX_BYTELENGTH } from "./util/runtime"; +import { runtime, __runtime_id } from "./runtime"; import { E_INVALIDLENGTH } from "./util/error"; export abstract class ArrayBufferView { @@ -8,7 +9,7 @@ export abstract class ArrayBufferView { @unsafe dataLength: u32; protected constructor(length: i32, alignLog2: i32) { - if (length > runtime.MAX_BYTELENGTH >>> alignLog2) throw new RangeError(E_INVALIDLENGTH); + if (length > MAX_BYTELENGTH >>> alignLog2) throw new RangeError(E_INVALIDLENGTH); var buffer = new ArrayBuffer(length = length << alignLog2); this.data = buffer; this.dataStart = changetype(buffer); @@ -50,24 +51,24 @@ export abstract class ArrayBufferView { } constructor(length: i32) { - if (length > runtime.MAX_BYTELENGTH) throw new RangeError(E_INVALIDLENGTH); + if (length > MAX_BYTELENGTH) throw new RangeError(E_INVALIDLENGTH); var buffer = runtime.allocate(length); memory.fill(changetype(buffer), 0, length); - return changetype(runtime.register(buffer, classId())); + return changetype(runtime.register(buffer, __runtime_id())); } get byteLength(): i32 { return changetype
(changetype(this) - HEADER_SIZE).payloadSize; } - slice(begin: i32 = 0, end: i32 = runtime.MAX_BYTELENGTH): ArrayBuffer { + slice(begin: i32 = 0, end: i32 = MAX_BYTELENGTH): ArrayBuffer { var length = this.byteLength; begin = begin < 0 ? max(length + begin, 0) : min(begin, length); end = end < 0 ? max(length + end , 0) : min(end , length); var outSize = max(end - begin, 0); var out = runtime.allocate(outSize); memory.copy(out, changetype(this) + begin, outSize); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } toString(): string { diff --git a/std/assembly/builtins.ts b/std/assembly/builtins.ts index be4f7905..5d192c72 100644 --- a/std/assembly/builtins.ts +++ b/std/assembly/builtins.ts @@ -176,6 +176,10 @@ export declare function unchecked(expr: T): T; @builtin export declare function call_indirect(target: void, ...args: void[]): T; +// @ts-ignore: decorator +@builtin +export declare function call_direct(target: void, ...args: void[]): T; + // @ts-ignore: decorator @builtin export declare function instantiate(...args: void[]): T; diff --git a/std/assembly/collector/README.md b/std/assembly/collector/README.md index 10fab027..d6071fca 100644 --- a/std/assembly/collector/README.md +++ b/std/assembly/collector/README.md @@ -21,6 +21,9 @@ Tracing * **__ref_unlink**(ref: `usize`, parentRef: `usize`): `void`
Unlinks a reference from a parent that was referencing it. Implementation is optional. +* **__ref_mark**(ref: `usize`): `void`
+ Marks a reference as being reachable so it doesn't become sweeped. + Reference counting ------------------ diff --git a/std/assembly/collector/dummy.ts b/std/assembly/collector/dummy.ts index 98690829..231e8e90 100644 --- a/std/assembly/collector/dummy.ts +++ b/std/assembly/collector/dummy.ts @@ -29,3 +29,9 @@ function __ref_link(ref: usize, parentRef: usize): void { function __ref_unlink(ref: usize, parentRef: usize): void { if (TRACE) trace("dummy.unlink", 2, ref, parentRef); } + +// @ts-ignore: decorator +@global @unsafe +function __ref_mark(ref: usize): void { + if (TRACE) trace("dummy.mark", 1, ref); +} diff --git a/std/assembly/collector/index.d.ts b/std/assembly/collector/index.d.ts index 9b41caf7..74a44d04 100644 --- a/std/assembly/collector/index.d.ts +++ b/std/assembly/collector/index.d.ts @@ -5,6 +5,7 @@ declare function __ref_register(ref: usize): void; // tracing declare function __ref_link(ref: usize, parentRef: usize): void; declare function __ref_unlink(ref: usize, parentRef: usize): void; +declare function __ref_mark(ref: usize): void; // reference counting declare function __ref_retain(ref: usize): void; diff --git a/std/assembly/collector/itcm.ts b/std/assembly/collector/itcm.ts index 5669e32a..da3db06c 100644 --- a/std/assembly/collector/itcm.ts +++ b/std/assembly/collector/itcm.ts @@ -4,7 +4,8 @@ @inline const TRACE = isDefined(GC_TRACE); -import { iterateRoots, HEADER_SIZE } from "../runtime"; +import { HEADER_SIZE } from "../util/runtime"; +import { __gc_mark_roots, __gc_mark_members } from "../gc"; /** Collector states. */ const enum State { @@ -155,10 +156,7 @@ function step(): void { } case State.IDLE: { if (TRACE) trace("itcm~step/IDLE"); - iterateRoots((ref: usize): void => { - var obj = refToObj(ref); - if (obj.color == white) obj.makeGray(); - }); + __gc_mark_roots(); state = State.MARK; if (TRACE) trace("itcm~state = MARK"); break; @@ -166,21 +164,14 @@ function step(): void { case State.MARK: { obj = iter.next; if (obj !== toSpace) { - if (TRACE) trace("itcm~step/MARK iterate", 1, objToRef(obj)); + if (TRACE) trace("itcm~step/MARK", 1, objToRef(obj)); iter = obj; obj.color = i32(!white); - // CLASS~iterate(ref, fn) - call_indirect(obj.classId, objToRef(obj), (ref: usize): void => { - trace(" iter", 1, ref); - var obj = refToObj(ref); - if (obj.color == white) obj.makeGray(); - }); + // TODO: directize through __gc_mark_members + call_indirect(obj.classId, objToRef(obj)); // CLASS~traverse(ref) } else { + __gc_mark_roots(); if (TRACE) trace("itcm~step/MARK finish"); - iterateRoots((ref: usize): void => { - var obj = refToObj(ref); - if (obj.color == white) obj.makeGray(); - }); obj = iter.next; if (obj === toSpace) { let from = fromSpace; @@ -257,7 +248,9 @@ export function __ref_link(ref: usize, parentRef: usize): void { } // @ts-ignore: decorator -// @global @unsafe -// export function __ref_unlink(ref: usize, parentRef: usize): void { -// if (TRACE) trace("itcm.unlink", 2, ref, parentRef); -// } +@global @unsafe +export function __ref_mark(ref: usize): void { + if (TRACE) trace("itcm.mark", 1, ref); + var obj = refToObj(ref); + if (obj.color == white) obj.makeGray(); +} diff --git a/std/assembly/dataview.ts b/std/assembly/dataview.ts index 144c1cd1..875f8307 100644 --- a/std/assembly/dataview.ts +++ b/std/assembly/dataview.ts @@ -1,4 +1,4 @@ -import { runtime } from "./runtime"; +import { MAX_BYTELENGTH } from "./util/runtime"; import { ArrayBuffer } from "./arraybuffer"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH } from "./util/error"; @@ -13,11 +13,10 @@ export class DataView { constructor( buffer: ArrayBuffer, byteOffset: i32 = 0, - byteLength: i32 = i32.MIN_VALUE // FIXME: TS2304: Cannot find name 'buffer'. + byteLength: i32 = buffer.byteLength ) { - if (byteLength === i32.MIN_VALUE) byteLength = buffer.byteLength - byteOffset; // FIXME if ( - i32(byteLength > runtime.MAX_BYTELENGTH) | + i32(byteLength > MAX_BYTELENGTH) | i32(byteOffset + byteLength > buffer.byteLength) ) throw new RangeError(E_INVALIDLENGTH); this.data = buffer; // links diff --git a/std/assembly/fixedarray.ts b/std/assembly/fixedarray.ts index e63ecab0..0553bb49 100644 --- a/std/assembly/fixedarray.ts +++ b/std/assembly/fixedarray.ts @@ -1,4 +1,5 @@ -import { runtime, classId, HEADER, HEADER_SIZE } from "./runtime"; +import { HEADER, HEADER_SIZE, MAX_BYTELENGTH } from "./util/runtime"; +import { runtime, __runtime_id } from "./runtime"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_HOLEYARRAY } from "./util/error"; // NOTE: DO NOT USE YET! @@ -10,7 +11,7 @@ export class FixedArray { [key: number]: T; constructor(length: i32) { - if (length > runtime.MAX_BYTELENGTH >>> alignof()) throw new RangeError(E_INVALIDLENGTH); + if (length > MAX_BYTELENGTH >>> alignof()) throw new RangeError(E_INVALIDLENGTH); if (isReference()) { if (!isNullable()) { if (length) throw new Error(E_HOLEYARRAY); @@ -19,7 +20,7 @@ export class FixedArray { var outSize = length << alignof(); var out = runtime.allocate(outSize); memory.fill(out, 0, outSize); - return changetype>(runtime.register(out, classId>())); + return changetype>(runtime.register(out, __runtime_id>())); } get length(): i32 { @@ -71,7 +72,7 @@ export class FixedArray { // GC integration - @unsafe private __iterate(fn: (ref: usize) => void): void { + @unsafe private __traverse(): void { if (isManaged()) { let cur = changetype(this); let end = cur + changetype
(changetype(this) - HEADER_SIZE).payloadSize; @@ -79,12 +80,12 @@ export class FixedArray { let val = load(cur); if (isNullable()) { if (val) { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } else { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } cur += sizeof(); } diff --git a/std/assembly/gc.ts b/std/assembly/gc.ts index c1195c2d..f19fc4a1 100644 --- a/std/assembly/gc.ts +++ b/std/assembly/gc.ts @@ -2,9 +2,19 @@ import { E_NOTIMPLEMENTED } from "./util/error"; +/** Marks root objects. */ +// @ts-ignore: decorator +@unsafe @builtin +export declare function __gc_mark_roots(): void; + +/** Marks class members. */ +// @ts-ignore: decorator +@unsafe @builtin +export declare function __gc_mark_members(classId: u32, ref: usize): void; + // @ts-ignore @lazy -var GC_ROOT = new Set(); +var ROOT = new Set(); /** Garbage collector interface. */ export namespace gc { @@ -24,7 +34,7 @@ export namespace gc { // @ts-ignore: decorator @unsafe export function retain(ref: usize): void { - var root = GC_ROOT; + var root = ROOT; if (!root.has(ref)) { root.add(ref); if (implemented) { @@ -38,7 +48,7 @@ export namespace gc { // @ts-ignore: decorator @unsafe export function release(ref: usize): void { - var root = GC_ROOT; + var root = ROOT; if (root.has(ref)) { root.delete(ref); if (implemented) { diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 67f655cb..36f846cb 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -118,6 +118,8 @@ declare function changetype(value: any): T; declare function unchecked(value: T): T; /** Emits a `call_indirect` instruction, calling the specified function in the function table by index with the specified arguments. Does result in a runtime error if the arguments do not match the called function. */ declare function call_indirect(target: Function | u32, ...args: any[]): T; +/** Emits a `call` instruction, calling the specified function in the function table directly with the specified arguments. Function index must be a compile-time constant. */ +declare function call_direct(target: Function | u32, ...args: any[]): T; /** Instantiates a new instance of `T` using the specified constructor arguments. */ declare function instantiate(...args: any[]): T; /** Tests if a 32-bit or 64-bit float is `NaN`. */ diff --git a/std/assembly/map.ts b/std/assembly/map.ts index 73ab4514..01f1a1e6 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -1,7 +1,7 @@ /// import { HASH } from "./util/hash"; -import { classId } from "./runtime"; +import { __runtime_id } from "./runtime"; // A deterministic hash map based on CloseTable from https://github.com/jorendorff/dht @@ -268,10 +268,10 @@ export class Map { // GC integration - @unsafe private __iterate(fn: (ref: usize) => void): void { - fn(changetype(this.buckets)); + @unsafe private __traverse(): void { + __ref_mark(changetype(this.buckets)); var entries = this.entries; - fn(changetype(entries)); + __ref_mark(changetype(entries)); if (isManaged() || isManaged()) { let cur = changetype(entries); let end = cur + this.entriesOffset * ENTRY_SIZE(); @@ -282,24 +282,24 @@ export class Map { let val = changetype(entry.key); if (isNullable()) { if (val) { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } else { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } if (isManaged()) { let val = changetype(entry.value); if (isNullable()) { if (val) { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } else { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } } diff --git a/std/assembly/runtime.ts b/std/assembly/runtime.ts index f019c881..1e0fcd04 100644 --- a/std/assembly/runtime.ts +++ b/std/assembly/runtime.ts @@ -1,58 +1,18 @@ // The runtime provides common functionality that links runtime interfaces for memory management // and garbage collection to the standard library, making sure it all plays well together. -import { AL_MASK, MAX_SIZE_32 } from "./util/allocator"; +import { HEADER, HEADER_SIZE, HEADER_MAGIC } from "./util/runtime"; import { HEAP_BASE, memory } from "./memory"; import { ArrayBufferView } from "./arraybuffer"; -/** - * The common runtime object header prepended to all managed objects. Has a size of 16 bytes in - * WASM32 and contains a classId (e.g. for instanceof checks), the allocation size (e.g. for - * .byteLength and .length computation) and additional reserved fields to be used by GC. If no - * GC is present, the HEADER is cut into half excluding the reserved fields, as indicated by - * HEADER_SIZE. -*/ -@unmanaged export class HEADER { - /** Unique id of the respective class or a magic value if not yet registered.*/ - classId: u32; - /** Size of the allocated payload. */ - payloadSize: u32; - /** Reserved field for use by GC. Only present if GC is. */ - reserved1: usize; // itcm: tagged next - /** Reserved field for use by GC. Only present if GC is. */ - reserved2: usize; // itcm: prev -} - -/** Common runtime header size. */ -// @ts-ignore: decorator -@lazy -export const HEADER_SIZE: usize = isDefined(__ref_collect) - ? (offsetof
( ) + AL_MASK) & ~AL_MASK // full header if GC is present - : (offsetof
("reserved1") + AL_MASK) & ~AL_MASK; // half header if GC is absent - -/** Common runtime header magic. Used to assert registered/unregistered status. */ -// @ts-ignore: decorator -@lazy -export const HEADER_MAGIC: u32 = 0xA55E4B17; - -/** Gets the computed unique class id of a class type. */ +/** Gets the computed unique id of a class type. */ // @ts-ignore: decorator @unsafe @builtin -export declare function classId(): u32; - -/** Iterates over all root objects of a reference type. */ -// @ts-ignore: decorator -@unsafe @builtin -export declare function iterateRoots(fn: (ref: usize) => void): void; +export declare function __runtime_id(): u32; /** Runtime implementation. */ export namespace runtime { - /** Maximum byte length of any buffer-like object. */ - // @ts-ignore - @lazy - export const MAX_BYTELENGTH: i32 = MAX_SIZE_32 - HEADER_SIZE; - /** Adjusts an allocation to actual block size. Primarily targets TLSF. */ export function adjust(payloadSize: usize): usize { // round up to power of 2, e.g. with HEADER_SIZE=8: @@ -152,10 +112,10 @@ export namespace runtime { // @ts-ignore: decorator @unsafe - export function makeArray(capacity: i32, cid: u32, alignLog2: usize, source: usize = 0): usize { - var array = runtime.register(runtime.allocate(offsetof()), cid); + export function makeArray(capacity: i32, id: u32, alignLog2: usize, source: usize = 0): usize { + var array = runtime.register(runtime.allocate(offsetof()), id); var bufferSize = capacity << alignLog2; - var buffer = runtime.register(runtime.allocate(capacity << alignLog2), classId()); + var buffer = runtime.register(runtime.allocate(capacity << alignLog2), __runtime_id()); changetype(array).data = changetype(buffer); // links changetype(array).dataStart = buffer; changetype(array).dataLength = bufferSize; diff --git a/std/assembly/set.ts b/std/assembly/set.ts index d48d7d1d..8cba7dc4 100644 --- a/std/assembly/set.ts +++ b/std/assembly/set.ts @@ -1,7 +1,7 @@ /// import { HASH } from "./util/hash"; -import { classId } from "./runtime"; +import { __runtime_id } from "./runtime"; // A deterministic hash set based on CloseTable from https://github.com/jorendorff/dht @@ -198,10 +198,10 @@ export class Set { // GC integration - @unsafe private __iterate(fn: (ref: usize) => void): void { - fn(changetype(this.buckets)); + @unsafe private __traverse(): void { + __ref_mark(changetype(this.buckets)); var entries = this.entries; - fn(changetype(entries)); + __ref_mark(changetype(entries)); if (isManaged()) { let cur = changetype(entries); let end = cur + this.entriesOffset * ENTRY_SIZE(); @@ -211,12 +211,12 @@ export class Set { let val = changetype(entry.key); if (isNullable()) { if (val) { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } else { - fn(val); - call_indirect(classId(), val, fn); + __ref_mark(val); + call_direct(__runtime_id(), val); } } cur += ENTRY_SIZE(); diff --git a/std/assembly/string.ts b/std/assembly/string.ts index e96155af..8218cae4 100644 --- a/std/assembly/string.ts +++ b/std/assembly/string.ts @@ -1,10 +1,11 @@ /// import { MAX_SIZE_32 } from "./util/allocator"; -import { runtime, HEADER, HEADER_SIZE, classId } from "./runtime"; -import { ArrayBufferView } from "./arraybuffer"; +import { HEADER, HEADER_SIZE } from "./util/runtime"; import { compareImpl, parse, CharCode, isWhiteSpaceOrLineTerminator } from "./util/string"; import { E_INVALIDLENGTH } from "./util/error"; +import { runtime, __runtime_id } from "./runtime"; +import { ArrayBufferView } from "./arraybuffer"; @sealed export abstract class String { @@ -18,7 +19,7 @@ import { E_INVALIDLENGTH } from "./util/error"; static fromCharCode(code: i32): String { var out = runtime.allocate(2); store(out, code); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } static fromCodePoint(code: i32): String { @@ -33,7 +34,7 @@ import { E_INVALIDLENGTH } from "./util/error"; let lo: u32 = (code & 0x3FF) + 0xDC00; store(out, (hi << 16) | lo); } - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } @operator("[]") charAt(pos: i32): String { @@ -41,7 +42,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (pos >= this.length) return changetype(""); var out = runtime.allocate(2); store(out, load(changetype(this) + (pos << 1))); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } charCodeAt(pos: i32): i32 { @@ -71,7 +72,7 @@ import { E_INVALIDLENGTH } from "./util/error"; var out = runtime.allocate(outSize); memory.copy(out, changetype(this), thisSize); memory.copy(out + thisSize, changetype(other), otherSize); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } endsWith(searchString: String, endPosition: i32 = String.MAX_LENGTH): bool { @@ -183,7 +184,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (resultLength <= 0) return changetype(""); var out = runtime.allocate(resultLength << 1); memory.copy(out, changetype(this) + intStart, resultLength); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } substring(start: i32, end: i32 = i32.MAX_VALUE): String { @@ -198,7 +199,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (!fromPos && toPos == this.length << 1) return this; var out = runtime.allocate(len); memory.copy(out, changetype(this) + fromPos, len); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } trim(): String { @@ -226,7 +227,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (!start && size == length << 1) return this; var out = runtime.allocate(size); memory.copy(out, changetype(this) + offset, size); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } @inline @@ -256,7 +257,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (!size) return changetype(""); var out = runtime.allocate(size); memory.copy(out, changetype(this) + offset, size); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } trimEnd(): String { @@ -275,7 +276,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (size == originalSize) return this; var out = runtime.allocate(size); memory.copy(out, changetype(this), size); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } padStart(targetLength: i32, padString: string = " "): String { @@ -296,7 +297,7 @@ import { E_INVALIDLENGTH } from "./util/error"; memory.copy(out, changetype(padString), prependSize); } memory.copy(out + prependSize, changetype(this), thisSize); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } padEnd(targetLength: i32, padString: string = " "): String { @@ -317,7 +318,7 @@ import { E_INVALIDLENGTH } from "./util/error"; } else { memory.copy(out + thisSize, changetype(padString), appendSize); } - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } repeat(count: i32 = 0): String { @@ -333,7 +334,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (count == 1) return this; var out = runtime.allocate((length * count) << 1); memory.repeat(out, changetype(this), length << 1, count); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } slice(beginIndex: i32, endIndex: i32 = i32.MAX_VALUE): String { @@ -344,27 +345,27 @@ import { E_INVALIDLENGTH } from "./util/error"; if (len <= 0) return changetype(""); var out = runtime.allocate(len << 1); memory.copy(out, changetype(this) + (begin << 1), len << 1); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } split(separator: String | null = null, limit: i32 = i32.MAX_VALUE): String[] { assert(this !== null); - if (!limit) return changetype(runtime.makeArray(0, classId(), alignof())); + if (!limit) return changetype(runtime.makeArray(0, __runtime_id(), alignof())); if (separator === null) return [this]; var length: isize = this.length; var sepLen: isize = separator.length; if (limit < 0) limit = i32.MAX_VALUE; if (!sepLen) { - if (!length) return changetype(runtime.makeArray(0, classId(), alignof())); + if (!length) return changetype(runtime.makeArray(0, __runtime_id(), alignof())); // split by chars length = min(length, limit); - let result = changetype(runtime.makeArray(length, classId(), alignof())); + let result = changetype(runtime.makeArray(length, __runtime_id(), alignof())); let resultStart = changetype(result).dataStart; for (let i: isize = 0; i < length; ++i) { let charStr = runtime.allocate(2); store(charStr, load(changetype(this) + (i << 1))); store(resultStart + (i << alignof()), charStr); // result[i] = charStr - runtime.register(charStr, classId()); + runtime.register(charStr, __runtime_id()); if (isManaged()) { if (isDefined(__ref_link)) __ref_link(changetype(charStr), changetype(result)); if (isDefined(__ref_retain)) __ref_retain(changetype(charStr)); @@ -372,18 +373,18 @@ import { E_INVALIDLENGTH } from "./util/error"; } return result; } else if (!length) { - let result = changetype(runtime.makeArray(1, classId(), alignof())); + let result = changetype(runtime.makeArray(1, __runtime_id(), alignof())); store(changetype(result).dataStart, ""); // no need to register/link return result; } - var result = changetype(runtime.makeArray(0, classId(), alignof())); + var result = changetype(runtime.makeArray(0, __runtime_id(), alignof())); var end = 0, start = 0, i = 0; while ((end = this.indexOf(separator!, start)) != -1) { let len = end - start; if (len > 0) { let out = runtime.allocate(len << 1); memory.copy(out, changetype(this) + (start << 1), len << 1); - result.push(changetype(runtime.register(out, classId()))); + result.push(changetype(runtime.register(out, __runtime_id()))); } else { result.push(changetype("")); } @@ -391,7 +392,7 @@ import { E_INVALIDLENGTH } from "./util/error"; start = end + sepLen; } if (!start) { - let result = changetype(runtime.makeArray(1, classId(), alignof())); + let result = changetype(runtime.makeArray(1, __runtime_id(), alignof())); unchecked(result[0] = this); return result; } @@ -399,7 +400,7 @@ import { E_INVALIDLENGTH } from "./util/error"; if (len > 0) { let out = runtime.allocate(len << 1); memory.copy(out, changetype(this) + (start << 1), len << 1); - result.push(changetype(runtime.register(out, classId()))); + result.push(changetype(runtime.register(out, __runtime_id()))); } else { result.push(changetype("")); } @@ -474,7 +475,7 @@ import { E_INVALIDLENGTH } from "./util/error"; var out = runtime.allocate(bufPos); memory.copy(changetype(out), buf, bufPos); memory.free(buf); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } toUTF8(): usize { diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index 44deb819..f4658251 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -1,4 +1,4 @@ -import { runtime, classId } from "./runtime"; +import { runtime, __runtime_id } from "./runtime"; import { ArrayBufferView } from "./arraybuffer"; import { COMPARATOR, SORT as SORT_IMPL } from "./util/sort"; import { E_INDEXOUTOFRANGE } from "./util/error"; @@ -967,7 +967,7 @@ function SUBARRAY( changetype(out).data = data; // links changetype(out).dataStart = dataStart + (begin << alignof()); changetype(out).dataLength = (end - begin) << alignof(); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } // @ts-ignore: decorator diff --git a/std/assembly/util/number.ts b/std/assembly/util/number.ts index 4cb4608d..d8d5b841 100644 --- a/std/assembly/util/number.ts +++ b/std/assembly/util/number.ts @@ -1,4 +1,4 @@ -import { runtime, classId } from "../runtime"; +import { runtime, __runtime_id } from "../runtime"; import { ArrayBufferView } from "../arraybuffer"; import { CharCode } from "./string"; @@ -266,7 +266,7 @@ export function utoa32(value: u32): String { var out = runtime.allocate(decimals << 1); utoa32_core(changetype(out), value, decimals); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } export function itoa32(value: i32): String { @@ -281,7 +281,7 @@ export function itoa32(value: i32): String { utoa32_core(changetype(out), value, decimals); if (sign) store(changetype(out), CharCode.MINUS); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } export function utoa64(value: u64): String { @@ -298,7 +298,7 @@ export function utoa64(value: u64): String { out = runtime.allocate(decimals << 1); utoa64_core(changetype(out), value, decimals); } - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } export function itoa64(value: i64): String { @@ -320,7 +320,7 @@ export function itoa64(value: i64): String { } if (sign) store(changetype(out), CharCode.MINUS); - return changetype(runtime.register(out, classId())); + return changetype(runtime.register(out, __runtime_id())); } export function itoa(value: T): String { diff --git a/std/assembly/util/runtime.ts b/std/assembly/util/runtime.ts new file mode 100644 index 00000000..c1307da4 --- /dev/null +++ b/std/assembly/util/runtime.ts @@ -0,0 +1,36 @@ +import { AL_MASK, MAX_SIZE_32 } from "./allocator"; + +/** + * The common runtime object header prepended to all managed objects. Has a size of 16 bytes in + * WASM32 and contains a classId (e.g. for instanceof checks), the allocation size (e.g. for + * .byteLength and .length computation) and additional reserved fields to be used by GC. If no + * GC is present, the HEADER is cut into half excluding the reserved fields, as indicated by + * HEADER_SIZE. +*/ +@unmanaged export class HEADER { + /** Unique id of the respective class or a magic value if not yet registered.*/ + classId: u32; + /** Size of the allocated payload. */ + payloadSize: u32; + /** Reserved field for use by GC. Only present if GC is. */ + reserved1: usize; // itcm: tagged next + /** Reserved field for use by GC. Only present if GC is. */ + reserved2: usize; // itcm: prev +} + +/** Common runtime header size. */ +// @ts-ignore: decorator +@lazy +export const HEADER_SIZE: usize = isDefined(__ref_collect) + ? (offsetof
( ) + AL_MASK) & ~AL_MASK // full header if GC is present + : (offsetof
("reserved1") + AL_MASK) & ~AL_MASK; // half header if GC is absent + +/** Common runtime header magic. Used to assert registered/unregistered status. */ +// @ts-ignore: decorator +@lazy +export const HEADER_MAGIC: u32 = 0xA55E4B17; + +/** Maximum byte length of any buffer-like object. */ +// @ts-ignore +@lazy +export const MAX_BYTELENGTH: i32 = MAX_SIZE_32 - HEADER_SIZE; diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index 8f3e2851..91afd2e4 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -58,7 +58,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -72,7 +72,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -100,7 +100,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index e855d4fc..21c264d2 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -74,7 +74,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -88,7 +88,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -128,7 +128,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 4ccab138..b6d70658 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -106,7 +106,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -121,7 +121,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index 6bc65dd1..b047896f 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -9,10 +9,10 @@ (data (i32.const 48) "\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 84)) (export "memory" (memory $0)) @@ -22,7 +22,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -121,13 +121,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -139,24 +139,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index ffdd0ac9..5481e7b5 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1,18 +1,18 @@ (module - (type $FUNCSIG$vii (func (param i32 i32))) + (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) (memory $0 1) (data (i32.const 8) "\01\00\00\00\10") (data (i32.const 24) "c\00l\00a\00s\00s\00.\00t\00s") (table $0 2 funcref) - (elem (i32.const 0) $start $~lib/string/String~iterate) + (elem (i32.const 0) $start $~lib/string/String~traverse) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class/test)) (export ".capabilities" (global $~lib/capabilities)) - (func $~lib/string/String~iterate (; 0 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 0 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $class/test (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index cbfea5a1..24c686ea 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) (type $FUNCSIG$v (func)) @@ -12,7 +11,7 @@ (memory $0 1) (data (i32.const 8) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00") (table $0 2 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate) + (elem (i32.const 0) $null $~lib/string/String~traverse) (global $class/Animal.ONE (mut i32) (i32.const 1)) (global $~lib/memory/HEAP_BASE i32 (i32.const 40)) (global $~lib/capabilities i32 (i32.const 2)) @@ -21,8 +20,8 @@ (export "test" (func $class/test)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $class/Animal.add (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index df9f379b..73a58d4b 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -7,19 +7,15 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$v (func)) - (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$i (func (result i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) - (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) (data (i32.const 8) "\01\00\00\00,") (data (i32.const 24) "~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 72) "\01\00\00\00\1e") (data (i32.const 88) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 120) "\01\00\00\00\12") - (data (i32.const 136) " \00 \00 \00 \00 \00i\00t\00e\00r") - (table $0 14 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|0 $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate) + (table $0 11 funcref) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse) (global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) @@ -42,10 +38,10 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/allocator/tlsf/Root#setSLMap (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setSLMap (; 2 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 i32.const 22 i32.ge_u @@ -65,7 +61,7 @@ local.get $2 i32.store offset=4 ) - (func $~lib/allocator/tlsf/Root#setHead (; 4 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/allocator/tlsf/Root#setHead (; 3 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 22 i32.ge_u @@ -100,7 +96,7 @@ local.get $3 i32.store offset=96 ) - (func $~lib/allocator/tlsf/Block#get:right (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:right (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load i32.const -4 @@ -134,7 +130,7 @@ end local.get $0 ) - (func $~lib/allocator/tlsf/fls (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/fls (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -150,7 +146,7 @@ i32.clz i32.sub ) - (func $~lib/allocator/tlsf/Root#getHead (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getHead (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 22 i32.ge_u @@ -184,7 +180,7 @@ i32.add i32.load offset=96 ) - (func $~lib/allocator/tlsf/Root#getSLMap (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getSLMap (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.const 22 i32.ge_u @@ -203,7 +199,7 @@ i32.add i32.load offset=4 ) - (func $~lib/allocator/tlsf/Root#remove (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#remove (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -332,7 +328,7 @@ end end ) - (func $~lib/allocator/tlsf/Block#get:left (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:left (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load i32.const 2 @@ -362,7 +358,7 @@ end local.get $0 ) - (func $~lib/allocator/tlsf/Root#setJump (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#setJump (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.load i32.const 1 @@ -407,7 +403,7 @@ local.get $0 i32.store ) - (func $~lib/allocator/tlsf/Root#insert (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#insert (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -637,7 +633,7 @@ i32.or call $~lib/allocator/tlsf/Root#setSLMap ) - (func $~lib/allocator/tlsf/Root#addMemory (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#addMemory (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -760,7 +756,7 @@ local.get $1 call $~lib/allocator/tlsf/Root#insert ) - (func $~lib/allocator/tlsf/ffs (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -774,7 +770,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/Root#search (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#search (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -886,7 +882,7 @@ end end ) - (func $~lib/allocator/tlsf/Root#use (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#use (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -997,7 +993,7 @@ i32.const 8 i32.add ) - (func $~lib/allocator/tlsf/__mem_allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/__mem_allocate (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1023,14 +1019,14 @@ if unreachable end - i32.const 160 + i32.const 120 local.set $2 - i32.const 160 + i32.const 120 global.set $~lib/allocator/tlsf/ROOT i32.const 2912 i32.const 0 i32.store - i32.const 160 + i32.const 120 i32.const 0 i32.store i32.const 0 @@ -1040,7 +1036,7 @@ i32.const 22 i32.lt_u if - i32.const 160 + i32.const 120 local.get $1 i32.const 0 call $~lib/allocator/tlsf/Root#setSLMap @@ -1051,7 +1047,7 @@ i32.const 32 i32.lt_u if - i32.const 160 + i32.const 120 local.get $1 local.get $3 i32.const 0 @@ -1070,8 +1066,8 @@ br $repeat|0 end end - i32.const 160 - i32.const 3080 + i32.const 120 + i32.const 3040 current_memory i32.const 16 i32.shl @@ -1167,7 +1163,7 @@ local.get $1 call $~lib/allocator/tlsf/Root#use ) - (func $~lib/runtime/runtime.allocate (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 1 i32.const 32 @@ -1194,114 +1190,7 @@ i32.const 16 i32.add ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.and - local.get $1 - i32.or - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/collector/itcm/iter - local.get $0 - i32.eq - if - local.get $0 - i32.load offset=12 - global.set $~lib/collector/itcm/iter - end - local.get $0 - i32.load offset=8 - i32.const -4 - i32.and - local.tee $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.store offset=12 - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.and - local.get $2 - i32.or - i32.store offset=8 - global.get $~lib/collector/itcm/toSpace - local.get $0 - call $~lib/collector/itcm/ManagedObjectList#push - local.get $0 - local.get $0 - i32.load offset=8 - i32.const -4 - i32.and - i32.const 2 - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/step~anonymous|0 (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) - global.get $~lib/collector/itcm/white - local.get $0 - i32.const 16 - i32.sub - local.tee $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/step~anonymous|1 (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 136 - i32.const 1 - local.get $0 - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - global.get $~lib/collector/itcm/white - local.get $0 - i32.const 16 - i32.sub - local.tee $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/allocator/tlsf/__mem_free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/tlsf/__mem_free (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1339,7 +1228,7 @@ end end ) - (func $~lib/collector/itcm/step (; 24 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 19 ;) (type $FUNCSIG$v) (local $0 i32) block $break|0 block $case3|0 @@ -1390,8 +1279,7 @@ i32.const 1 global.set $~lib/collector/itcm/state end - i32.const 3 - call $~iterateRoots + call $~lib/gc/__gc_mark_roots i32.const 2 global.set $~lib/collector/itcm/state br $break|0 @@ -1418,13 +1306,11 @@ local.get $0 i32.const 16 i32.add - i32.const 4 local.get $0 i32.load - call_indirect (type $FUNCSIG$vii) + call_indirect (type $FUNCSIG$vi) else - i32.const 5 - call $~iterateRoots + call $~lib/gc/__gc_mark_roots global.get $~lib/collector/itcm/toSpace global.get $~lib/collector/itcm/iter i32.load offset=8 @@ -1463,7 +1349,7 @@ i32.and global.set $~lib/collector/itcm/iter local.get $0 - i32.const 156 + i32.const 120 i32.ge_u if local.get $0 @@ -1482,7 +1368,35 @@ end end ) - (func $~lib/collector/itcm/__ref_register (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/collector/itcm/__ref_register (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) call $~lib/collector/itcm/step local.get $0 i32.const 16 @@ -1499,15 +1413,15 @@ local.get $0 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/runtime/runtime.register (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.register (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.const 156 + i32.const 120 i32.le_u if i32.const 0 i32.const 88 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -1522,7 +1436,7 @@ if i32.const 0 i32.const 88 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -1536,14 +1450,14 @@ end local.get $0 ) - (func $constructor/CtorConditionallyAllocates#constructor (; 27 ;) (type $FUNCSIG$i) (result i32) + (func $constructor/CtorConditionallyAllocates#constructor (; 23 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) block (result i32) global.get $constructor/b if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 13 + i32.const 10 call $~lib/runtime/runtime.register local.set $0 end @@ -1553,13 +1467,13 @@ if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 13 + i32.const 10 call $~lib/runtime/runtime.register local.set $0 end local.get $0 ) - (func $start:constructor (; 28 ;) (type $FUNCSIG$v) + (func $start:constructor (; 24 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 call $~lib/runtime/runtime.allocate @@ -1568,7 +1482,7 @@ global.set $constructor/emptyCtor i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 6 + i32.const 3 call $~lib/runtime/runtime.register local.tee $0 i32.const 1 @@ -1577,7 +1491,7 @@ global.set $constructor/emptyCtorWithFieldInit i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 7 + i32.const 4 call $~lib/runtime/runtime.register local.tee $0 i32.const 0 @@ -1586,12 +1500,12 @@ global.set $constructor/emptyCtorWithFieldNoInit i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 8 + i32.const 5 call $~lib/runtime/runtime.register global.set $constructor/none i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 9 + i32.const 6 call $~lib/runtime/runtime.register local.tee $0 i32.const 1 @@ -1600,7 +1514,7 @@ global.set $constructor/justFieldInit i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 10 + i32.const 7 call $~lib/runtime/runtime.register local.tee $0 i32.const 0 @@ -1619,95 +1533,140 @@ end i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 11 + i32.const 8 call $~lib/runtime/runtime.register end global.set $constructor/ctorConditionallyReturns i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 12 + i32.const 9 call $~lib/runtime/runtime.register global.set $constructor/ctorAllocates call $constructor/CtorConditionallyAllocates#constructor global.set $constructor/ctorConditionallyAllocates ) - (func $start (; 29 ;) (type $FUNCSIG$v) + (func $start (; 25 ;) (type $FUNCSIG$v) call $start:constructor ) - (func $null (; 30 ;) (type $FUNCSIG$v) + (func $null (; 26 ;) (type $FUNCSIG$v) nop ) - (func $~iterateRoots (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $constructor/emptyCtor - local.tee $1 + (local $2 i32) + global.get $~lib/collector/itcm/iter + local.get $0 + i32.eq if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + i32.load offset=12 + global.set $~lib/collector/itcm/iter + end + local.get $0 + i32.load offset=8 + i32.const -4 + i32.and + local.tee $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.and + local.get $2 + i32.or + i32.store offset=8 + global.get $~lib/collector/itcm/toSpace + local.get $0 + call $~lib/collector/itcm/ManagedObjectList#push + local.get $0 + local.get $0 + i32.load offset=8 + i32.const -4 + i32.and + i32.const 2 + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/__ref_mark (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + global.get $~lib/collector/itcm/white + local.get $0 + i32.const 16 + i32.sub + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/collector/itcm/ManagedObject#makeGray + end + ) + (func $~lib/gc/__gc_mark_roots (; 29 ;) (type $FUNCSIG$v) + (local $0 i32) + global.get $constructor/emptyCtor + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark end global.get $constructor/emptyCtorWithFieldInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/emptyCtorWithFieldNoInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/none - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/justFieldInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/justFieldNoInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorReturns - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorConditionallyReturns - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorAllocates - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorConditionallyAllocates - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end ) ) diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index 18e3224c..cfec0087 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -7,16 +7,13 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$v (func)) - (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) - (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) (data (i32.const 8) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00") (data (i32.const 72) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 120) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00i\00t\00e\00r\00") - (table $0 14 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $constructor/EmptyCtor~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|2 $constructor/EmptyCtorWithFieldInit~iterate $constructor/EmptyCtorWithFieldNoInit~iterate $constructor/None~iterate $constructor/JustFieldInit~iterate $constructor/JustFieldNoInit~iterate $constructor/CtorConditionallyReturns~iterate $constructor/CtorAllocates~iterate $constructor/CtorConditionallyAllocates~iterate) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (table $0 11 funcref) + (elem (i32.const 0) $null $~lib/string/String~traverse $constructor/EmptyCtor~traverse $constructor/EmptyCtorWithFieldInit~traverse $constructor/EmptyCtorWithFieldNoInit~traverse $constructor/None~traverse $constructor/JustFieldInit~traverse $constructor/JustFieldNoInit~traverse $constructor/CtorConditionallyReturns~traverse $constructor/CtorAllocates~traverse $constructor/CtorConditionallyAllocates~traverse) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/allocator/tlsf/Root.SL_START i32 (i32.const 4)) (global $~lib/allocator/tlsf/SL_BITS i32 (i32.const 5)) @@ -34,7 +31,7 @@ (global $~lib/allocator/tlsf/TAGS i32 (i32.const 3)) (global $~lib/allocator/tlsf/Block.MAX_SIZE i32 (i32.const 1073741824)) (global $~lib/allocator/tlsf/SB_SIZE i32 (i32.const 256)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) @@ -52,17 +49,17 @@ (global $constructor/ctorConditionallyReturns (mut i32) (i32.const 0)) (global $constructor/ctorAllocates (mut i32) (i32.const 0)) (global $constructor/ctorConditionallyAllocates (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 156)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 120)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/runtime/runtime.adjust (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.adjust (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -70,15 +67,15 @@ i32.sub i32.shl ) - (func $~lib/allocator/tlsf/Root#set:tailRef (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#set:tailRef (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) i32.const 0 local.get $1 i32.store offset=2912 ) - (func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/allocator/tlsf/Root#setSLMap (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setSLMap (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -99,7 +96,7 @@ local.get $2 i32.store offset=4 ) - (func $~lib/allocator/tlsf/Root#setHead (; 6 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/allocator/tlsf/Root#setHead (; 5 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -136,11 +133,11 @@ local.get $3 i32.store offset=96 ) - (func $~lib/allocator/tlsf/Root#get:tailRef (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Root#get:tailRef (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 i32.load offset=2912 ) - (func $~lib/allocator/tlsf/Block#get:right (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:right (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -180,7 +177,7 @@ local.get $1 end ) - (func $~lib/allocator/tlsf/fls (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/fls (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -198,7 +195,7 @@ i32.clz i32.sub ) - (func $~lib/allocator/tlsf/Root#getHead (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getHead (; 9 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -234,7 +231,7 @@ i32.add i32.load offset=96 ) - (func $~lib/allocator/tlsf/Root#getSLMap (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getSLMap (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -254,7 +251,7 @@ i32.add i32.load offset=4 ) - (func $~lib/allocator/tlsf/Root#remove (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#remove (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -399,7 +396,7 @@ end end ) - (func $~lib/allocator/tlsf/Block#get:left (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:left (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -431,7 +428,7 @@ local.get $1 end ) - (func $~lib/allocator/tlsf/Root#setJump (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setJump (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 i32.load global.get $~lib/allocator/tlsf/FREE @@ -477,7 +474,7 @@ local.get $1 i32.store ) - (func $~lib/allocator/tlsf/Root#insert (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#insert (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -743,7 +740,7 @@ i32.or call $~lib/allocator/tlsf/Root#setSLMap ) - (func $~lib/allocator/tlsf/Root#addMemory (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#addMemory (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -896,7 +893,7 @@ call $~lib/allocator/tlsf/Root#insert i32.const 1 ) - (func $~lib/allocator/tlsf/ffs (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -912,7 +909,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/ffs (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -928,7 +925,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/Root#search (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#search (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1069,7 +1066,7 @@ end local.get $6 ) - (func $~lib/allocator/tlsf/Root#use (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#use (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1197,7 +1194,7 @@ global.get $~lib/allocator/tlsf/Block.INFO i32.add ) - (func $~lib/allocator/tlsf/__mem_allocate (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/__mem_allocate (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1433,19 +1430,19 @@ local.get $0 call $~lib/allocator/tlsf/Root#use ) - (func $~lib/memory/memory.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/memory/memory.allocate (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/allocator/tlsf/__mem_allocate return ) - (func $~lib/runtime/runtime.allocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/runtime/runtime.adjust call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -1457,13 +1454,13 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $constructor/EmptyCtor~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/EmptyCtor~traverse (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/collector/itcm/ManagedObjectList#clear (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObjectList#clear (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.store offset=8 @@ -1471,13 +1468,7 @@ local.get $0 i32.store offset=12 ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.and - ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/collector/itcm/ManagedObject#get:next (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 @@ -1485,96 +1476,7 @@ i32.xor i32.and ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/collector/itcm/ManagedObject#get:next - local.set $1 - local.get $0 - i32.load offset=12 - local.set $2 - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $1 - call $~lib/collector/itcm/ManagedObject#set:next - ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $1 - local.get $0 - call $~lib/collector/itcm/ManagedObject#set:next - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $1 - call $~lib/collector/itcm/ManagedObject#set:next - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - global.get $~lib/collector/itcm/iter - i32.eq - if - local.get $0 - i32.load offset=12 - global.set $~lib/collector/itcm/iter - end - local.get $0 - call $~lib/collector/itcm/ManagedObject#unlink - global.get $~lib/collector/itcm/toSpace - local.get $0 - call $~lib/collector/itcm/ManagedObjectList#push - local.get $0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 2 - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/step~anonymous|0 (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - block $~lib/collector/itcm/refToObj|inlined.0 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObject#set:color (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $0 i32.load offset=8 @@ -1586,56 +1488,7 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/step~anonymous|1 (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 136 - i32.const 1 - local.get $0 - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - block $~lib/collector/itcm/refToObj|inlined.1 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/step~anonymous|2 (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - block $~lib/collector/itcm/refToObj|inlined.2 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/allocator/tlsf/__mem_free (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/tlsf/__mem_free (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1678,11 +1531,11 @@ end end ) - (func $~lib/memory/memory.free (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/tlsf/__mem_free ) - (func $~lib/collector/itcm/step (; 38 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 29 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) block $break|0 @@ -1711,7 +1564,7 @@ br $break|0 end block - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE call $~lib/memory/memory.allocate global.set $~lib/collector/itcm/fromSpace global.get $~lib/collector/itcm/fromSpace @@ -1722,7 +1575,7 @@ i32.store offset=4 global.get $~lib/collector/itcm/fromSpace call $~lib/collector/itcm/ManagedObjectList#clear - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE call $~lib/memory/memory.allocate global.set $~lib/collector/itcm/toSpace global.get $~lib/collector/itcm/toSpace @@ -1740,8 +1593,7 @@ end end block - i32.const 3 - call $~iterateRoots + call $~lib/gc/__gc_mark_roots i32.const 2 global.set $~lib/collector/itcm/state br $break|0 @@ -1767,16 +1619,14 @@ local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end - i32.const 4 local.get $0 i32.load - call_indirect (type $FUNCSIG$vii) + call_indirect (type $FUNCSIG$vi) else - i32.const 5 - call $~iterateRoots + call $~lib/gc/__gc_mark_roots global.get $~lib/collector/itcm/iter call $~lib/collector/itcm/ManagedObject#get:next local.set $0 @@ -1834,15 +1684,43 @@ unreachable end ) - (func $~lib/collector/itcm/__ref_register (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#set:next (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.and + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/ManagedObjectList#push (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + local.get $0 + call $~lib/collector/itcm/ManagedObject#set:next + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/collector/itcm/ManagedObject#set:next + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/collector/itcm/__ref_register (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) call $~lib/collector/itcm/step - block $~lib/collector/itcm/refToObj|inlined.3 (result i32) + block $~lib/collector/itcm/refToObj|inlined.0 (result i32) local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub end local.set $2 @@ -1853,7 +1731,7 @@ local.get $2 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/runtime/runtime.register (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.register (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -1862,24 +1740,24 @@ if i32.const 0 i32.const 88 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 88 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -1891,7 +1769,7 @@ call $~lib/collector/itcm/__ref_register local.get $0 ) - (func $constructor/EmptyCtor#constructor (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/EmptyCtor#constructor (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1903,10 +1781,60 @@ end local.get $0 ) - (func $constructor/EmptyCtorWithFieldInit~iterate (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/EmptyCtorWithFieldInit~traverse (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $constructor/EmptyCtorWithFieldInit#constructor (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/EmptyCtorWithFieldInit#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + call $~lib/runtime/runtime.allocate + i32.const 3 + call $~lib/runtime/runtime.register + local.set $0 + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + ) + (func $constructor/EmptyCtorWithFieldNoInit~traverse (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + ) + (func $constructor/EmptyCtorWithFieldNoInit#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + call $~lib/runtime/runtime.allocate + i32.const 4 + call $~lib/runtime/runtime.register + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + ) + (func $constructor/None~traverse (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + ) + (func $constructor/None#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 0 + call $~lib/runtime/runtime.allocate + i32.const 5 + call $~lib/runtime/runtime.register + local.set $0 + end + local.get $0 + ) + (func $constructor/JustFieldInit~traverse (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + ) + (func $constructor/JustFieldInit#constructor (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1921,10 +1849,10 @@ i32.store local.get $0 ) - (func $constructor/EmptyCtorWithFieldNoInit~iterate (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/JustFieldNoInit~traverse (; 43 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $constructor/EmptyCtorWithFieldNoInit#constructor (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/JustFieldNoInit#constructor (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1939,64 +1867,14 @@ i32.store local.get $0 ) - (func $constructor/None~iterate (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - ) - (func $constructor/None#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 0 - call $~lib/runtime/runtime.allocate - i32.const 8 - call $~lib/runtime/runtime.register - local.set $0 - end - local.get $0 - ) - (func $constructor/JustFieldInit~iterate (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - ) - (func $constructor/JustFieldInit#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - call $~lib/runtime/runtime.allocate - i32.const 9 - call $~lib/runtime/runtime.register - local.set $0 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - ) - (func $constructor/JustFieldNoInit~iterate (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - ) - (func $constructor/JustFieldNoInit#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - call $~lib/runtime/runtime.allocate - i32.const 10 - call $~lib/runtime/runtime.register - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - ) - (func $constructor/CtorReturns#constructor (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/CtorReturns#constructor (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 call $~lib/memory/memory.allocate ) - (func $constructor/CtorConditionallyReturns~iterate (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/CtorConditionallyReturns~traverse (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $constructor/CtorConditionallyReturns#constructor (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/CtorConditionallyReturns#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) global.get $constructor/b if i32.const 0 @@ -2008,23 +1886,23 @@ if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 11 + i32.const 8 call $~lib/runtime/runtime.register local.set $0 end local.get $0 ) - (func $constructor/CtorAllocates~iterate (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/CtorAllocates~traverse (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $constructor/CtorAllocates#constructor (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/CtorAllocates#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 12 + i32.const 9 call $~lib/runtime/runtime.register local.set $0 end @@ -2033,10 +1911,10 @@ drop local.get $0 ) - (func $constructor/CtorConditionallyAllocates~iterate (; 57 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $constructor/CtorConditionallyAllocates~traverse (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $constructor/CtorConditionallyAllocates#constructor (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $constructor/CtorConditionallyAllocates#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) global.get $constructor/b if block (result i32) @@ -2045,7 +1923,7 @@ if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 13 + i32.const 10 call $~lib/runtime/runtime.register local.set $0 end @@ -2058,13 +1936,13 @@ if i32.const 0 call $~lib/runtime/runtime.allocate - i32.const 13 + i32.const 10 call $~lib/runtime/runtime.register local.set $0 end local.get $0 ) - (func $start:constructor (; 59 ;) (type $FUNCSIG$v) + (func $start:constructor (; 52 ;) (type $FUNCSIG$v) i32.const 0 call $constructor/EmptyCtor#constructor global.set $constructor/emptyCtor @@ -2096,82 +1974,139 @@ call $constructor/CtorConditionallyAllocates#constructor global.set $constructor/ctorConditionallyAllocates ) - (func $start (; 60 ;) (type $FUNCSIG$v) + (func $start (; 53 ;) (type $FUNCSIG$v) call $start:constructor ) - (func $null (; 61 ;) (type $FUNCSIG$v) + (func $null (; 54 ;) (type $FUNCSIG$v) ) - (func $~iterateRoots (; 62 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#get:color (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.and + ) + (func $~lib/collector/itcm/ManagedObject#unlink (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $constructor/emptyCtor - local.tee $1 + (local $2 i32) + local.get $0 + call $~lib/collector/itcm/ManagedObject#get:next + local.set $1 + local.get $0 + i32.load offset=12 + local.set $2 + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/collector/itcm/ManagedObject#set:next + ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 57 ;) (type $FUNCSIG$vi) (param $0 i32) + local.get $0 + global.get $~lib/collector/itcm/iter + i32.eq if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + i32.load offset=12 + global.set $~lib/collector/itcm/iter + end + local.get $0 + call $~lib/collector/itcm/ManagedObject#unlink + global.get $~lib/collector/itcm/toSpace + local.get $0 + call $~lib/collector/itcm/ManagedObjectList#push + local.get $0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 2 + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/__ref_mark (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + block $~lib/collector/itcm/refToObj|inlined.1 (result i32) + local.get $0 + local.set $1 + local.get $1 + global.get $~lib/util/runtime/HEADER_SIZE + i32.sub + end + local.set $2 + local.get $2 + call $~lib/collector/itcm/ManagedObject#get:color + global.get $~lib/collector/itcm/white + i32.eq + if + local.get $2 + call $~lib/collector/itcm/ManagedObject#makeGray + end + ) + (func $~lib/gc/__gc_mark_roots (; 59 ;) (type $FUNCSIG$v) + (local $0 i32) + global.get $constructor/emptyCtor + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark end global.get $constructor/emptyCtorWithFieldInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/emptyCtorWithFieldNoInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/none - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/justFieldInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/justFieldNoInit - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorReturns - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorConditionallyReturns - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorAllocates - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $constructor/ctorConditionallyAllocates - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end ) ) diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 55ce6dba..05a44692 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -146,7 +146,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -161,7 +161,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index 36d55435..0796ee96 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -18,10 +18,10 @@ (global $exports/Car.TIRES i32 (i32.const 4)) (global $exports/vehicles.Car.TIRES i32 (i32.const 4)) (global $exports/outer.inner.a i32 (i32.const 42)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 48)) (global $~lib/argc (mut i32) (i32.const 0)) @@ -75,7 +75,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -174,13 +174,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -192,24 +192,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc.optimized.wat b/tests/compiler/gc.optimized.wat index c4c8cb6c..276fd14a 100644 --- a/tests/compiler/gc.optimized.wat +++ b/tests/compiler/gc.optimized.wat @@ -2,11 +2,11 @@ (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) @@ -19,16 +19,18 @@ (data (i32.const 72) "g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r") (data (i32.const 96) "\02\00\00\00\n") (data (i32.const 112) "g\00c\00.\00t\00s") - (data (i32.const 128) "\02\00\00\00&") - (data (i32.const 144) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 184) "\02\00\00\00\0e") - (data (i32.const 200) "g\00c\00.\00l\00i\00n\00k") - (data (i32.const 216) "\02\00\00\00\12") - (data (i32.const 232) "g\00c\00.\00u\00n\00l\00i\00n\00k") - (data (i32.const 256) "\02\00\00\00\14") - (data (i32.const 272) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t") + (data (i32.const 128) "\02\00\00\00\0e") + (data (i32.const 144) "g\00c\00.\00m\00a\00r\00k") + (data (i32.const 160) "\02\00\00\00&") + (data (i32.const 176) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 216) "\02\00\00\00\0e") + (data (i32.const 232) "g\00c\00.\00l\00i\00n\00k") + (data (i32.const 248) "\02\00\00\00\12") + (data (i32.const 264) "g\00c\00.\00u\00n\00l\00i\00n\00k") + (data (i32.const 288) "\02\00\00\00\14") + (data (i32.const 304) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t") (table $0 6 funcref) - (elem (i32.const 0) $null $gc/Ref~iterate $gc/Ref~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $gc/Ref~iterate) + (elem (i32.const 0) $null $gc/Ref~traverse $gc/Ref~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $gc/Ref~traverse) (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) @@ -38,18 +40,18 @@ (global $gc/_dummy/unlink_count (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_ref (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0)) + (global $gc/_dummy/mark_count (mut i32) (i32.const 0)) + (global $gc/_dummy/mark_ref (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/gc/gc.implemented i32 (i32.const 1)) - (global $~lib/argc (mut i32) (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) - (global $~lib/gc/GC_ROOT (mut i32) (i32.const 0)) + (global $~lib/gc/ROOT (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $gc/main)) - (export "runtime.MAX_BYTELENGTH" (global $~lib/runtime/runtime.MAX_BYTELENGTH)) (export "runtime.adjust" (func $~lib/runtime/runtime.adjust)) (export "runtime.allocate" (func $~lib/runtime/runtime.allocate)) (export "runtime.reallocate" (func $~lib/runtime/runtime.reallocate)) @@ -161,7 +163,7 @@ i32.const 16 i32.add ) - (func $gc/Ref~iterate (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/Ref~traverse (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $gc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -184,12 +186,12 @@ (func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.const 292 + i32.const 324 i32.le_u if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -204,7 +206,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -216,23 +218,32 @@ call $gc/_dummy/__ref_register local.get $0 ) - (func $~lib/set/Set~iterate (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/_dummy/__ref_mark (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 144 i32.const 1 - global.set $~lib/argc + local.get $0 + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + global.get $gc/_dummy/mark_count + i32.const 1 + i32.add + global.set $gc/_dummy/mark_count + local.get $0 + global.set $gc/_dummy/mark_ref + ) + (func $~lib/set/Set~traverse (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $gc/_dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $0 - i32.const 1 - global.set $~lib/argc - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $gc/_dummy/__ref_mark ) - (func $~lib/memory/memory.fill (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -443,16 +454,16 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 1073741808 i32.gt_u if i32.const 0 - i32.const 144 - i32.const 53 - i32.const 51 + i32.const 176 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -465,8 +476,8 @@ i32.const 5 call $~lib/runtime/runtime.register ) - (func $gc/_dummy/__ref_link (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 200 + (func $gc/_dummy/__ref_link (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + i32.const 232 i32.const 2 local.get $0 f64.convert_i32_u @@ -485,8 +496,8 @@ local.get $0 global.set $gc/_dummy/link_parentRef ) - (func $gc/_dummy/__ref_unlink (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 232 + (func $gc/_dummy/__ref_unlink (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + i32.const 264 i32.const 2 local.get $0 f64.convert_i32_u @@ -505,7 +516,7 @@ local.get $1 global.set $gc/_dummy/unlink_parentRef ) - (func $~lib/set/Set#clear (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -568,7 +579,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 14 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 15 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 call $~lib/runtime/runtime.allocate @@ -596,7 +607,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -627,7 +638,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/set/Set#find (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -670,7 +681,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -679,7 +690,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -814,7 +825,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -897,9 +908,9 @@ i32.store end ) - (func $~lib/gc/gc.retain (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/gc/gc.retain (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/gc/GC_ROOT + global.get $~lib/gc/ROOT local.tee $1 local.get $0 call $~lib/set/Set#has @@ -913,7 +924,7 @@ call $gc/_dummy/__ref_link end ) - (func $~lib/set/Set#delete (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -973,9 +984,9 @@ call $~lib/set/Set#rehash end ) - (func $~lib/gc/gc.release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/gc/gc.release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/gc/GC_ROOT + global.get $~lib/gc/ROOT local.tee $1 local.get $0 call $~lib/set/Set#has @@ -988,8 +999,8 @@ call $gc/_dummy/__ref_unlink end ) - (func $~lib/gc/gc.collect (; 23 ;) (type $FUNCSIG$v) - i32.const 272 + (func $~lib/gc/gc.collect (; 24 ;) (type $FUNCSIG$v) + i32.const 304 i32.const 0 f64.const 0 f64.const 0 @@ -1002,7 +1013,7 @@ i32.add global.set $gc/_dummy/collect_count ) - (func $gc/main (; 24 ;) (type $FUNCSIG$v) + (func $gc/main (; 25 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1010,12 +1021,12 @@ global.get $~lib/started i32.eqz if - i32.const 296 + i32.const 328 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset call $~lib/set/Set#constructor - global.set $~lib/gc/GC_ROOT + global.set $~lib/gc/ROOT i32.const 1 global.set $~lib/started end @@ -1153,7 +1164,7 @@ unreachable end ) - (func $~lib/util/memory/memcpy (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2000,7 +2011,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 27 ;) (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 @@ -2194,7 +2205,7 @@ end end ) - (func $~lib/runtime/runtime.reallocate (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2228,7 +2239,7 @@ i32.shl i32.const 0 local.get $0 - i32.const 292 + i32.const 324 i32.gt_u select local.get $3 @@ -2266,12 +2277,12 @@ i32.eq if local.get $0 - i32.const 292 + i32.const 324 i32.le_u if i32.const 0 i32.const 24 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2299,14 +2310,14 @@ i32.store offset=4 local.get $0 ) - (func $~lib/runtime/runtime.discard (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.discard (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.const 292 + i32.const 324 i32.le_u if i32.const 0 i32.const 24 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable @@ -2320,13 +2331,13 @@ if i32.const 0 i32.const 24 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable end ) - (func $~lib/runtime/runtime.makeArray (; 29 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 30 ;) (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) @@ -2382,10 +2393,10 @@ end local.get $4 ) - (func $null (; 30 ;) (type $FUNCSIG$v) + (func $null (; 31 ;) (type $FUNCSIG$v) nop ) - (func $~lib/runtime/runtime.makeArray|trampoline (; 31 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray|trampoline (; 32 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -2405,7 +2416,7 @@ local.get $3 call $~lib/runtime/runtime.makeArray ) - (func $~lib/setargc (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/setargc (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.set $~lib/argc ) diff --git a/tests/compiler/gc.untouched.wat b/tests/compiler/gc.untouched.wat index 354568f1..2010adb5 100644 --- a/tests/compiler/gc.untouched.wat +++ b/tests/compiler/gc.untouched.wat @@ -2,11 +2,11 @@ (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) @@ -15,12 +15,13 @@ (data (i32.const 8) "\02\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00") (data (i32.const 96) "\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00t\00s\00") - (data (i32.const 128) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 184) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00") - (data (i32.const 216) "\02\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00") - (data (i32.const 256) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00") + (data (i32.const 128) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00m\00a\00r\00k\00") + (data (i32.const 160) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 216) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00") + (data (i32.const 248) "\02\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00") + (data (i32.const 288) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00") (table $0 6 funcref) - (elem (i32.const 0) $null $gc/Ref~iterate $~lib/string/String~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/arraybuffer/ArrayBuffer~iterate) + (elem (i32.const 0) $null $gc/Ref~traverse $~lib/string/String~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/arraybuffer/ArrayBuffer~traverse) (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) @@ -30,22 +31,23 @@ (global $gc/_dummy/unlink_count (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_ref (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $gc/_dummy/mark_count (mut i32) (i32.const 0)) + (global $gc/_dummy/mark_ref (mut i32) (i32.const 0)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/gc/gc.implemented i32 (i32.const 1)) - (global $~lib/argc (mut i32) (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) - (global $~lib/gc/GC_ROOT (mut i32) (i32.const 0)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) + (global $~lib/gc/ROOT (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 292)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 324)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $gc/main)) - (export "runtime.MAX_BYTELENGTH" (global $~lib/runtime/runtime.MAX_BYTELENGTH)) (export "runtime.adjust" (func $~lib/runtime/runtime.adjust)) (export "runtime.allocate" (func $~lib/runtime/runtime.allocate)) (export "runtime.reallocate" (func $~lib/runtime/runtime.reallocate)) @@ -62,7 +64,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -161,7 +163,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -173,13 +175,13 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $gc/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 72 @@ -207,24 +209,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -248,24 +250,35 @@ end local.get $0 ) - (func $~lib/set/Set~iterate (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $gc/_dummy/__ref_mark (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 144 i32.const 1 - global.set $~lib/argc + local.get $0 + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + global.get $gc/_dummy/mark_count + i32.const 1 + i32.add + global.set $gc/_dummy/mark_count + local.get $0 + global.set $gc/_dummy/mark_ref + ) + (func $~lib/set/Set~traverse (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $gc/_dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $gc/_dummy/__ref_mark ) - (func $~lib/memory/memory.fill (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -522,19 +535,19 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 - i32.const 144 - i32.const 53 - i32.const 51 + i32.const 176 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -549,8 +562,8 @@ i32.const 5 call $~lib/runtime/runtime.register ) - (func $gc/_dummy/__ref_link (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 200 + (func $gc/_dummy/__ref_link (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + i32.const 232 i32.const 2 local.get $0 f64.convert_i32_u @@ -569,8 +582,8 @@ local.get $0 global.set $gc/_dummy/link_parentRef ) - (func $gc/_dummy/__ref_unlink (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 232 + (func $gc/_dummy/__ref_unlink (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + i32.const 264 i32.const 2 local.get $0 f64.convert_i32_u @@ -589,7 +602,7 @@ local.get $1 global.set $gc/_dummy/unlink_parentRef ) - (func $~lib/set/Set#clear (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -658,7 +671,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -692,7 +705,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -734,7 +747,7 @@ local.set $1 local.get $1 ) - (func $~lib/set/Set#find (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -785,7 +798,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -800,7 +813,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -970,7 +983,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1068,9 +1081,9 @@ i32.store end ) - (func $~lib/gc/gc.retain (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/gc/gc.retain (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/gc/GC_ROOT + global.get $~lib/gc/ROOT local.set $1 local.get $1 local.get $0 @@ -1085,7 +1098,7 @@ call $gc/_dummy/__ref_link end ) - (func $~lib/set/Set#delete (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1158,9 +1171,9 @@ end i32.const 1 ) - (func $~lib/gc/gc.release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/gc/gc.release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/gc/GC_ROOT + global.get $~lib/gc/ROOT local.set $1 local.get $1 local.get $0 @@ -1175,8 +1188,8 @@ call $gc/_dummy/__ref_unlink end ) - (func $gc/_dummy/__ref_collect (; 27 ;) (type $FUNCSIG$v) - i32.const 272 + (func $gc/_dummy/__ref_collect (; 28 ;) (type $FUNCSIG$v) + i32.const 304 i32.const 0 f64.const 0 f64.const 0 @@ -1189,10 +1202,10 @@ i32.add global.set $gc/_dummy/collect_count ) - (func $~lib/gc/gc.collect (; 28 ;) (type $FUNCSIG$v) + (func $~lib/gc/gc.collect (; 29 ;) (type $FUNCSIG$v) call $gc/_dummy/__ref_collect ) - (func $gc/main (; 29 ;) (type $FUNCSIG$v) + (func $gc/main (; 30 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1355,7 +1368,7 @@ unreachable end ) - (func $~lib/util/memory/memcpy (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2556,7 +2569,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2787,21 +2800,21 @@ end end ) - (func $~lib/allocator/arena/__mem_free (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/arena/__mem_free (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/memory/memory.free (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/arena/__mem_free ) - (func $~lib/runtime/runtime.reallocate (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -2838,7 +2851,7 @@ i32.const 0 i32.store offset=12 local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -2855,7 +2868,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -2865,7 +2878,7 @@ if i32.const 0 i32.const 24 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2898,7 +2911,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/runtime/runtime.discard (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.discard (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -2907,24 +2920,24 @@ if i32.const 0 i32.const 24 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $1 local.get $1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable @@ -2932,7 +2945,7 @@ local.get $1 call $~lib/memory/memory.free ) - (func $~lib/runtime/runtime.makeArray (; 36 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2996,7 +3009,7 @@ end local.get $4 ) - (func $start (; 37 ;) (type $FUNCSIG$v) + (func $start (; 38 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -3009,11 +3022,11 @@ global.set $~lib/allocator/arena/offset i32.const 0 call $~lib/set/Set#constructor - global.set $~lib/gc/GC_ROOT + global.set $~lib/gc/ROOT ) - (func $null (; 38 ;) (type $FUNCSIG$v) + (func $null (; 39 ;) (type $FUNCSIG$v) ) - (func $~lib/runtime/runtime.makeArray|trampoline (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray|trampoline (; 40 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -3033,7 +3046,7 @@ local.get $3 call $~lib/runtime/runtime.makeArray ) - (func $~lib/setargc (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/setargc (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.set $~lib/argc ) diff --git a/tests/compiler/gc/_dummy.ts b/tests/compiler/gc/_dummy.ts index 6dde53b9..679d606a 100644 --- a/tests/compiler/gc/_dummy.ts +++ b/tests/compiler/gc/_dummy.ts @@ -45,3 +45,14 @@ function __ref_unlink(ref: usize, parentRef: usize): void { unlink_ref = ref; unlink_parentRef = parentRef; } + +export var mark_count = 0; +export var mark_ref: usize = 0; + +// @ts-ignore: decorator +@global @unsafe +function __ref_mark(ref: usize): void { + trace("gc.mark", 1, ref); + mark_count++; + mark_ref = ref; +} diff --git a/tests/compiler/gc/global-assign.optimized.wat b/tests/compiler/gc/global-assign.optimized.wat index 17e8b604..ea586ca7 100644 --- a/tests/compiler/gc/global-assign.optimized.wat +++ b/tests/compiler/gc/global-assign.optimized.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$v (func)) @@ -16,7 +15,7 @@ (data (i32.const 96) "\02\00\00\00&") (data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s") (table $0 3 funcref) - (elem (i32.const 0) $null $gc/global-assign/Ref~iterate $gc/global-assign/Ref~iterate) + (elem (i32.const 0) $null $gc/global-assign/Ref~traverse $gc/global-assign/Ref~traverse) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) (global $gc/_dummy/link_count (mut i32) (i32.const 0)) @@ -113,7 +112,7 @@ i32.const 16 i32.add ) - (func $gc/global-assign/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/global-assign/Ref~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -141,7 +140,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -156,7 +155,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/global-assign.untouched.wat b/tests/compiler/gc/global-assign.untouched.wat index ec6c1281..35f7310e 100644 --- a/tests/compiler/gc/global-assign.untouched.wat +++ b/tests/compiler/gc/global-assign.untouched.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) @@ -13,7 +12,7 @@ (data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00") (data (i32.const 96) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s\00") (table $0 3 funcref) - (elem (i32.const 0) $null $gc/global-assign/Ref~iterate $~lib/string/String~iterate) + (elem (i32.const 0) $null $gc/global-assign/Ref~traverse $~lib/string/String~traverse) (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) @@ -23,10 +22,12 @@ (global $gc/_dummy/unlink_count (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_ref (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $gc/_dummy/mark_count (mut i32) (i32.const 0)) + (global $gc/_dummy/mark_ref (mut i32) (i32.const 0)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $gc/global-assign/global (mut i32) (i32.const 0)) (global $gc/global-assign/globalRef (mut i32) (i32.const 0)) @@ -41,7 +42,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -140,7 +141,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -152,13 +153,13 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $gc/global-assign/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/global-assign/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 72 @@ -186,24 +187,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/global-init.optimized.wat b/tests/compiler/gc/global-init.optimized.wat index afe176a7..bc338579 100644 --- a/tests/compiler/gc/global-init.optimized.wat +++ b/tests/compiler/gc/global-init.optimized.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$v (func)) @@ -16,7 +15,7 @@ (data (i32.const 96) "\02\00\00\00\"") (data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s") (table $0 3 funcref) - (elem (i32.const 0) $null $gc/global-init/Ref~iterate $gc/global-init/Ref~iterate) + (elem (i32.const 0) $null $gc/global-init/Ref~traverse $gc/global-init/Ref~traverse) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) (global $gc/_dummy/link_count (mut i32) (i32.const 0)) @@ -112,7 +111,7 @@ i32.const 16 i32.add ) - (func $gc/global-init/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/global-init/Ref~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -140,7 +139,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -155,7 +154,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/global-init.untouched.wat b/tests/compiler/gc/global-init.untouched.wat index 5b418b44..567860a4 100644 --- a/tests/compiler/gc/global-init.untouched.wat +++ b/tests/compiler/gc/global-init.untouched.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) @@ -13,7 +12,7 @@ (data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00") (data (i32.const 96) "\02\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s\00") (table $0 3 funcref) - (elem (i32.const 0) $null $gc/global-init/Ref~iterate $~lib/string/String~iterate) + (elem (i32.const 0) $null $gc/global-init/Ref~traverse $~lib/string/String~traverse) (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) @@ -23,10 +22,12 @@ (global $gc/_dummy/unlink_count (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_ref (mut i32) (i32.const 0)) (global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $gc/_dummy/mark_count (mut i32) (i32.const 0)) + (global $gc/_dummy/mark_ref (mut i32) (i32.const 0)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $gc/global-init/global (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) @@ -40,7 +41,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -139,7 +140,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -151,13 +152,13 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $gc/global-init/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $gc/global-init/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 72 @@ -185,24 +186,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/itcm/trace.optimized.wat b/tests/compiler/gc/itcm/trace.optimized.wat index 92fe62ac..c41a97e4 100644 --- a/tests/compiler/gc/itcm/trace.optimized.wat +++ b/tests/compiler/gc/itcm/trace.optimized.wat @@ -1,10 +1,10 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) @@ -26,46 +26,46 @@ (data (i32.const 296) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00I\00D\00L\00E") (data (i32.const 336) "\01\00\00\00\1c") (data (i32.const 352) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00I\00D\00L\00E") - (data (i32.const 384) "\01\00\00\00\1a") - (data (i32.const 400) " \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y") - (data (i32.const 432) "\01\00\00\00:") - (data (i32.const 448) " \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]") - (data (i32.const 512) "\01\00\00\006") - (data (i32.const 528) " \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]") - (data (i32.const 584) "\01\00\00\00\"") - (data (i32.const 600) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K") - (data (i32.const 640) "\01\00\00\00,") - (data (i32.const 656) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00i\00t\00e\00r\00a\00t\00e") - (data (i32.const 704) "\01\00\00\00\12") - (data (i32.const 720) " \00 \00 \00 \00 \00i\00t\00e\00r") - (data (i32.const 744) "\01\00\00\00*") - (data (i32.const 760) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h") - (data (i32.const 808) "\01\00\00\00$") - (data (i32.const 824) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P") - (data (i32.const 864) "\01\00\00\00(") - (data (i32.const 880) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e") - (data (i32.const 920) "\01\00\00\00,") - (data (i32.const 936) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h") - (data (i32.const 984) "\01\00\00\00\"") - (data (i32.const 1000) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)") - (data (i32.const 1040) "\01\00\00\00\1e") - (data (i32.const 1056) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 1088) "\01\00\00\00\1a") - (data (i32.const 1104) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r") - (data (i32.const 1136) "\01\00\00\00(") - (data (i32.const 1152) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)") - (data (i32.const 1192) "\01\00\00\00&") - (data (i32.const 1208) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 1248) "\01\00\00\00\12") - (data (i32.const 1264) "i\00t\00c\00m\00.\00l\00i\00n\00k") - (data (i32.const 1288) "\01\00\00\00\1c") - (data (i32.const 1304) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f") - (data (i32.const 1336) "\01\00\00\00\1a") - (data (i32.const 1352) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 1384) "\01\00\00\00\1e") - (data (i32.const 1400) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l") - (table $0 10 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|0 $gc/itcm/trace/Ref~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) + (data (i32.const 384) "\01\00\00\00\"") + (data (i32.const 400) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K") + (data (i32.const 440) "\01\00\00\00\1c") + (data (i32.const 456) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K") + (data (i32.const 488) "\01\00\00\00*") + (data (i32.const 504) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h") + (data (i32.const 552) "\01\00\00\00$") + (data (i32.const 568) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P") + (data (i32.const 608) "\01\00\00\00(") + (data (i32.const 624) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e") + (data (i32.const 664) "\01\00\00\00,") + (data (i32.const 680) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h") + (data (i32.const 728) "\01\00\00\00\"") + (data (i32.const 744) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)") + (data (i32.const 784) "\01\00\00\00\12") + (data (i32.const 800) "i\00t\00c\00m\00.\00m\00a\00r\00k") + (data (i32.const 824) "\01\00\00\00\1a") + (data (i32.const 840) " \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y") + (data (i32.const 872) "\01\00\00\00:") + (data (i32.const 888) " \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]") + (data (i32.const 952) "\01\00\00\006") + (data (i32.const 968) " \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]") + (data (i32.const 1024) "\01\00\00\00\1e") + (data (i32.const 1040) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") + (data (i32.const 1072) "\01\00\00\00\1a") + (data (i32.const 1088) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r") + (data (i32.const 1120) "\01\00\00\00(") + (data (i32.const 1136) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)") + (data (i32.const 1176) "\01\00\00\00&") + (data (i32.const 1192) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 1232) "\01\00\00\00\12") + (data (i32.const 1248) "i\00t\00c\00m\00.\00l\00i\00n\00k") + (data (i32.const 1272) "\01\00\00\00\1c") + (data (i32.const 1288) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f") + (data (i32.const 1320) "\01\00\00\00\1a") + (data (i32.const 1336) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1368) "\01\00\00\00\1e") + (data (i32.const 1384) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l") + (table $0 7 funcref) + (elem (i32.const 0) $null $~lib/string/String~traverse $gc/itcm/trace/Ref~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -74,7 +74,6 @@ (global $~lib/collector/itcm/iter (mut i32) (i32.const 0)) (global $~lib/collector/itcm/white (mut i32) (i32.const 0)) (global $gc/itcm/trace/ref (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $gc/itcm/trace/arr (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) @@ -82,7 +81,7 @@ (export "table" (table $0)) (export "main" (func $gc/itcm/trace/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -166,161 +165,7 @@ local.get $0 i32.store offset=12 ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - i32.const 448 - i32.const 3 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 16 - i32.add - f64.convert_i32_u - local.get $0 - i32.const 16 - i32.add - f64.convert_i32_u - local.get $0 - i32.load offset=8 - i32.const -4 - i32.and - local.tee $0 - i32.const 16 - i32.add - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/env/trace - local.get $0 - local.get $1 - i32.store offset=12 - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 528 - i32.const 3 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 16 - i32.add - f64.convert_i32_u - local.get $1 - i32.const 16 - i32.add - f64.convert_i32_u - local.get $0 - i32.const 16 - i32.add - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/env/trace - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.and - local.get $1 - i32.or - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 400 - i32.const 1 - local.get $0 - i32.const 16 - i32.add - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - global.get $~lib/collector/itcm/iter - local.get $0 - i32.eq - if - local.get $0 - i32.load offset=12 - global.set $~lib/collector/itcm/iter - end - local.get $0 - call $~lib/collector/itcm/ManagedObject#unlink - global.get $~lib/collector/itcm/toSpace - local.get $0 - call $~lib/collector/itcm/ManagedObjectList#push - local.get $0 - local.get $0 - i32.load offset=8 - i32.const -4 - i32.and - i32.const 2 - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/step~anonymous|0 (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) - global.get $~lib/collector/itcm/white - local.get $0 - i32.const 16 - i32.sub - local.tee $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/step~anonymous|1 (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 720 - i32.const 1 - local.get $0 - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - global.get $~lib/collector/itcm/white - local.get $0 - i32.const 16 - i32.sub - local.tee $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/step (; 10 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 5 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) block $break|0 @@ -410,23 +255,10 @@ f64.const 0 f64.const 0 call $~lib/env/trace - global.get $gc/itcm/trace/ref - local.tee $0 - if - local.get $0 - i32.const 2 - call_indirect (type $FUNCSIG$vi) - end - global.get $gc/itcm/trace/arr - local.tee $0 - if - local.get $0 - i32.const 2 - call_indirect (type $FUNCSIG$vi) - end + call $~lib/gc/__gc_mark_roots i32.const 2 global.set $~lib/collector/itcm/state - i32.const 600 + i32.const 400 i32.const 0 f64.const 0 f64.const 0 @@ -444,7 +276,7 @@ global.get $~lib/collector/itcm/toSpace i32.ne if - i32.const 656 + i32.const 456 i32.const 1 local.get $0 i32.const 16 @@ -468,12 +300,12 @@ i32.or i32.store offset=8 local.get $1 - i32.const 3 local.get $0 i32.load - call_indirect (type $FUNCSIG$vii) + call_indirect (type $FUNCSIG$vi) else - i32.const 760 + call $~lib/gc/__gc_mark_roots + i32.const 504 i32.const 0 f64.const 0 f64.const 0 @@ -481,20 +313,6 @@ f64.const 0 f64.const 0 call $~lib/env/trace - global.get $gc/itcm/trace/ref - local.tee $0 - if - local.get $0 - i32.const 4 - call_indirect (type $FUNCSIG$vi) - end - global.get $gc/itcm/trace/arr - local.tee $0 - if - local.get $0 - i32.const 4 - call_indirect (type $FUNCSIG$vi) - end global.get $~lib/collector/itcm/toSpace global.get $~lib/collector/itcm/iter i32.load offset=8 @@ -518,7 +336,7 @@ global.set $~lib/collector/itcm/iter i32.const 3 global.set $~lib/collector/itcm/state - i32.const 824 + i32.const 568 i32.const 0 f64.const 0 f64.const 0 @@ -535,7 +353,7 @@ global.get $~lib/collector/itcm/toSpace i32.ne if - i32.const 880 + i32.const 624 i32.const 1 local.get $0 i32.const 16 @@ -552,7 +370,7 @@ i32.and global.set $~lib/collector/itcm/iter else - i32.const 936 + i32.const 680 i32.const 0 f64.const 0 f64.const 0 @@ -575,7 +393,7 @@ end end ) - (func $~lib/collector/itcm/__ref_collect (; 11 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/__ref_collect (; 6 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 72 i32.const 0 @@ -609,7 +427,7 @@ end end ) - (func $~lib/runtime/runtime.allocate (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.allocate (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 1 i32.const 32 @@ -636,21 +454,158 @@ i32.const 16 i32.add ) - (func $gc/itcm/trace/Ref~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObject#unlink (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + i32.const 888 + i32.const 3 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 16 + i32.add + f64.convert_i32_u + local.get $0 + i32.const 16 + i32.add + f64.convert_i32_u + local.get $0 + i32.load offset=8 + i32.const -4 + i32.and + local.tee $0 + i32.const 16 + i32.add + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/env/trace + local.get $0 + local.get $1 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/ManagedObjectList#push (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + i32.const 968 + i32.const 3 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 16 + i32.add + f64.convert_i32_u + local.get $1 + i32.const 16 + i32.add + f64.convert_i32_u + local.get $0 + i32.const 16 + i32.add + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/env/trace + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.and + local.get $1 + i32.or + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 840 + i32.const 1 + local.get $0 + i32.const 16 + i32.add + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + global.get $~lib/collector/itcm/iter + local.get $0 + i32.eq + if + local.get $0 + i32.load offset=12 + global.set $~lib/collector/itcm/iter + end + local.get $0 + call $~lib/collector/itcm/ManagedObject#unlink + global.get $~lib/collector/itcm/toSpace + local.get $0 + call $~lib/collector/itcm/ManagedObjectList#push + local.get $0 + local.get $0 + i32.load offset=8 + i32.const -4 + i32.and + i32.const 2 + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/__ref_mark (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 800 + i32.const 1 + local.get $0 + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + global.get $~lib/collector/itcm/white + local.get $0 + i32.const 16 + i32.sub + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/collector/itcm/ManagedObject#makeGray + end + ) + (func $gc/itcm/trace/Ref~traverse (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load local.tee $0 if local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark local.get $0 - local.get $1 - call $gc/itcm/trace/Ref~iterate + call $gc/itcm/trace/Ref~traverse end ) - (func $~lib/collector/itcm/__ref_register (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 1104 + (func $~lib/collector/itcm/__ref_register (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 1088 i32.const 1 local.get $0 f64.convert_i32_u @@ -675,15 +630,15 @@ local.get $0 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/runtime/runtime.register (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.register (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.const 1432 + i32.const 1416 i32.le_u if i32.const 0 - i32.const 1056 - i32.const 145 + i32.const 1040 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -697,8 +652,8 @@ i32.ne if i32.const 0 - i32.const 1056 - i32.const 147 + i32.const 1040 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -710,7 +665,7 @@ call $~lib/collector/itcm/__ref_register local.get $0 ) - (func $~lib/memory/memory.fill (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -921,19 +876,18 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load local.tee $0 if local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end ) - (func $~lib/collector/itcm/__ref_link (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/__ref_link (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - i32.const 1264 + i32.const 1248 i32.const 2 local.get $0 f64.convert_i32_u @@ -971,7 +925,7 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 4 call $~lib/runtime/runtime.allocate @@ -979,7 +933,7 @@ i32.const 4 call $~lib/memory/memory.fill local.get $1 - i32.const 6 + i32.const 3 call $~lib/runtime/runtime.register local.set $1 local.get $0 @@ -987,7 +941,7 @@ if i32.const 12 call $~lib/runtime/runtime.allocate - i32.const 7 + i32.const 4 call $~lib/runtime/runtime.register local.set $0 end @@ -1020,49 +974,42 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array~iterate (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array~traverse (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if - local.get $2 + local.get $1 i32.load local.tee $0 if - i32.const 1 - global.set $~lib/argc local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark local.get $0 - local.get $1 - call $gc/itcm/trace/Ref~iterate + call $gc/itcm/trace/Ref~traverse end - local.get $2 + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end ) - (func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1909,7 +1856,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 (; 21 ;) (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 @@ -2103,7 +2050,7 @@ end end ) - (func $~lib/runtime/runtime.reallocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2127,7 +2074,7 @@ i32.shl i32.const 0 local.get $0 - i32.const 1432 + i32.const 1416 i32.gt_u select i32.const 32 @@ -2165,12 +2112,12 @@ i32.eq if local.get $0 - i32.const 1432 + i32.const 1416 i32.le_u if i32.const 0 - i32.const 1056 - i32.const 107 + i32.const 1040 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2198,7 +2145,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/ensureCapacity (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) i32.const 1 @@ -2238,7 +2185,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#__unchecked_set (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__unchecked_set (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load offset=4 @@ -2258,7 +2205,7 @@ end end ) - (func $~lib/array/Array#__set (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__set (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load offset=12 @@ -2277,14 +2224,14 @@ i32.store offset=12 end ) - (func $start:gc/itcm/trace (; 27 ;) (type $FUNCSIG$v) + (func $start:gc/itcm/trace (; 26 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 1432 + i32.const 1416 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset call $~lib/collector/itcm/__ref_collect - i32.const 1000 + i32.const 744 i32.const 0 f64.const 0 f64.const 0 @@ -2294,14 +2241,14 @@ call $~lib/env/trace i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 5 + i32.const 2 call $~lib/runtime/runtime.register local.tee $0 i32.const 0 i32.store local.get $0 global.set $gc/itcm/trace/ref - i32.const 1152 + i32.const 1136 i32.const 0 f64.const 0 f64.const 0 @@ -2311,7 +2258,7 @@ call $~lib/env/trace i32.const 16 call $~lib/runtime/runtime.allocate - i32.const 8 + i32.const 5 call $~lib/runtime/runtime.register call $~lib/arraybuffer/ArrayBufferView#constructor local.tee $0 @@ -2322,7 +2269,7 @@ i32.store offset=12 local.get $0 global.set $gc/itcm/trace/arr - i32.const 1304 + i32.const 1288 i32.const 0 f64.const 0 f64.const 0 @@ -2333,7 +2280,7 @@ global.get $gc/itcm/trace/arr global.get $gc/itcm/trace/ref call $~lib/array/Array#__set - i32.const 1400 + i32.const 1384 i32.const 0 f64.const 0 f64.const 0 @@ -2346,7 +2293,7 @@ call $~lib/array/Array#__set call $~lib/collector/itcm/__ref_collect ) - (func $gc/itcm/trace/main (; 28 ;) (type $FUNCSIG$v) + (func $gc/itcm/trace/main (; 27 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -2355,7 +2302,22 @@ global.set $~lib/started end ) - (func $null (; 29 ;) (type $FUNCSIG$v) + (func $null (; 28 ;) (type $FUNCSIG$v) nop ) + (func $~lib/gc/__gc_mark_roots (; 29 ;) (type $FUNCSIG$v) + (local $0 i32) + global.get $gc/itcm/trace/ref + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + end + global.get $gc/itcm/trace/arr + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + end + ) ) diff --git a/tests/compiler/gc/itcm/trace.ts b/tests/compiler/gc/itcm/trace.ts index 88e87f75..51dfdcf7 100644 --- a/tests/compiler/gc/itcm/trace.ts +++ b/tests/compiler/gc/itcm/trace.ts @@ -1,7 +1,7 @@ @global const GC_TRACE = true; import "collector/itcm"; -import { HEADER_SIZE } from "runtime"; +import { HEADER_SIZE } from "util/runtime"; assert(HEADER_SIZE == 16); assert(gc.implemented); diff --git a/tests/compiler/gc/itcm/trace.untouched.wat b/tests/compiler/gc/itcm/trace.untouched.wat index d5c8e7ae..e5ad51f5 100644 --- a/tests/compiler/gc/itcm/trace.untouched.wat +++ b/tests/compiler/gc/itcm/trace.untouched.wat @@ -1,10 +1,10 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) @@ -19,29 +19,29 @@ (data (i32.const 232) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00t\00o\00S\00p\00a\00c\00e\00 \00=\00") (data (i32.const 280) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00I\00D\00L\00E\00") (data (i32.const 336) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00I\00D\00L\00E\00") - (data (i32.const 384) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y\00") - (data (i32.const 432) "\01\00\00\00:\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]\00") - (data (i32.const 512) "\01\00\00\006\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]\00") - (data (i32.const 584) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K\00") - (data (i32.const 640) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00i\00t\00e\00r\00a\00t\00e\00") - (data (i32.const 704) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00i\00t\00e\00r\00") - (data (i32.const 744) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h\00") - (data (i32.const 808) "\01\00\00\00$\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P\00") - (data (i32.const 864) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e\00") - (data (i32.const 920) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h\00") - (data (i32.const 984) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)\00") - (data (i32.const 1040) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 1088) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r\00") - (data (i32.const 1136) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)\00") - (data (i32.const 1192) "\01\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 1248) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00l\00i\00n\00k\00") - (data (i32.const 1288) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f\00") - (data (i32.const 1336) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 1384) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l\00") - (table $0 10 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|2 $gc/itcm/trace/Ref~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) + (data (i32.const 384) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K\00") + (data (i32.const 440) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00") + (data (i32.const 488) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h\00") + (data (i32.const 552) "\01\00\00\00$\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P\00") + (data (i32.const 608) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e\00") + (data (i32.const 664) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h\00") + (data (i32.const 728) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)\00") + (data (i32.const 784) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00m\00a\00r\00k\00") + (data (i32.const 824) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y\00") + (data (i32.const 872) "\01\00\00\00:\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]\00") + (data (i32.const 952) "\01\00\00\006\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]\00") + (data (i32.const 1024) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") + (data (i32.const 1072) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r\00") + (data (i32.const 1120) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)\00") + (data (i32.const 1176) "\01\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 1232) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00l\00i\00n\00k\00") + (data (i32.const 1272) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f\00") + (data (i32.const 1320) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 1368) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l\00") + (table $0 7 funcref) + (elem (i32.const 0) $null $~lib/string/String~traverse $gc/itcm/trace/Ref~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $gc/itcm/trace/GC_TRACE i32 (i32.const 1)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/gc/gc.implemented i32 (i32.const 1)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) @@ -50,21 +50,20 @@ (global $~lib/collector/itcm/toSpace (mut i32) (i32.const 0)) (global $~lib/collector/itcm/iter (mut i32) (i32.const 0)) (global $~lib/collector/itcm/white (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $gc/itcm/trace/ref (mut i32) (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) - (global $~lib/argc (mut i32) (i32.const 0)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $gc/itcm/trace/arr (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 1432)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 1416)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $gc/itcm/trace/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -158,7 +157,7 @@ local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end f64.convert_i32_u @@ -174,13 +173,7 @@ local.get $0 i32.store offset=12 ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.and - ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/collector/itcm/ManagedObject#get:next (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 @@ -188,172 +181,7 @@ i32.xor i32.and ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.and - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/collector/itcm/ManagedObject#get:next - local.set $1 - local.get $0 - i32.load offset=12 - local.set $2 - i32.const 448 - i32.const 3 - block $~lib/collector/itcm/objToRef|inlined.4 (result i32) - local.get $2 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - block $~lib/collector/itcm/objToRef|inlined.5 (result i32) - local.get $0 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - block $~lib/collector/itcm/objToRef|inlined.6 (result i32) - local.get $1 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/env/trace - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $1 - call $~lib/collector/itcm/ManagedObject#set:next - ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.set $2 - i32.const 528 - i32.const 3 - block $~lib/collector/itcm/objToRef|inlined.7 (result i32) - local.get $2 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - block $~lib/collector/itcm/objToRef|inlined.8 (result i32) - local.get $1 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - block $~lib/collector/itcm/objToRef|inlined.9 (result i32) - local.get $0 - local.set $3 - local.get $3 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/env/trace - local.get $1 - local.get $0 - call $~lib/collector/itcm/ManagedObject#set:next - local.get $1 - local.get $2 - i32.store offset=12 - local.get $2 - local.get $1 - call $~lib/collector/itcm/ManagedObject#set:next - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - i32.const 400 - i32.const 1 - block $~lib/collector/itcm/objToRef|inlined.3 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.add - end - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - local.get $0 - global.get $~lib/collector/itcm/iter - i32.eq - if - local.get $0 - i32.load offset=12 - global.set $~lib/collector/itcm/iter - end - local.get $0 - call $~lib/collector/itcm/ManagedObject#unlink - global.get $~lib/collector/itcm/toSpace - local.get $0 - call $~lib/collector/itcm/ManagedObjectList#push - local.get $0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 2 - i32.or - i32.store offset=8 - ) - (func $~lib/collector/itcm/step~anonymous|0 (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - block $~lib/collector/itcm/refToObj|inlined.0 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObject#set:color (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $0 i32.load offset=8 @@ -365,63 +193,14 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/step~anonymous|1 (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 720 - i32.const 1 - local.get $0 - f64.convert_i32_u - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/env/trace - block $~lib/collector/itcm/refToObj|inlined.1 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/collector/itcm/step~anonymous|2 (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - (local $2 i32) - block $~lib/collector/itcm/refToObj|inlined.2 (result i32) - local.get $0 - local.set $1 - local.get $1 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - end - local.set $2 - local.get $2 - call $~lib/collector/itcm/ManagedObject#get:color - global.get $~lib/collector/itcm/white - i32.eq - if - local.get $2 - call $~lib/collector/itcm/ManagedObject#makeGray - end - ) - (func $~lib/allocator/arena/__mem_free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/arena/__mem_free (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/memory/memory.free (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/arena/__mem_free ) - (func $~lib/collector/itcm/step (; 18 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 10 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) block $break|0 @@ -458,7 +237,7 @@ f64.const 0 f64.const 0 call $~lib/env/trace - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE call $~lib/memory/memory.allocate global.set $~lib/collector/itcm/fromSpace i32.const 160 @@ -467,7 +246,7 @@ global.get $~lib/collector/itcm/fromSpace local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end f64.convert_i32_u @@ -484,7 +263,7 @@ i32.store offset=4 global.get $~lib/collector/itcm/fromSpace call $~lib/collector/itcm/ManagedObjectList#clear - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE call $~lib/memory/memory.allocate global.set $~lib/collector/itcm/toSpace i32.const 248 @@ -493,7 +272,7 @@ global.get $~lib/collector/itcm/toSpace local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end f64.convert_i32_u @@ -533,11 +312,10 @@ f64.const 0 f64.const 0 call $~lib/env/trace - i32.const 2 - call $~iterateRoots + call $~lib/gc/__gc_mark_roots i32.const 2 global.set $~lib/collector/itcm/state - i32.const 600 + i32.const 400 i32.const 0 f64.const 0 f64.const 0 @@ -558,13 +336,13 @@ global.get $~lib/collector/itcm/toSpace i32.ne if - i32.const 656 + i32.const 456 i32.const 1 - block $~lib/collector/itcm/objToRef|inlined.10 (result i32) + block $~lib/collector/itcm/objToRef|inlined.3 (result i32) local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end f64.convert_i32_u @@ -579,19 +357,19 @@ global.get $~lib/collector/itcm/white i32.eqz call $~lib/collector/itcm/ManagedObject#set:color - block $~lib/collector/itcm/objToRef|inlined.11 (result i32) + block $~lib/collector/itcm/objToRef|inlined.4 (result i32) local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end - i32.const 3 local.get $0 i32.load - call_indirect (type $FUNCSIG$vii) + call_indirect (type $FUNCSIG$vi) else - i32.const 760 + call $~lib/gc/__gc_mark_roots + i32.const 504 i32.const 0 f64.const 0 f64.const 0 @@ -599,8 +377,6 @@ f64.const 0 f64.const 0 call $~lib/env/trace - i32.const 4 - call $~iterateRoots global.get $~lib/collector/itcm/iter call $~lib/collector/itcm/ManagedObject#get:next local.set $0 @@ -622,7 +398,7 @@ global.set $~lib/collector/itcm/iter i32.const 3 global.set $~lib/collector/itcm/state - i32.const 824 + i32.const 568 i32.const 0 f64.const 0 f64.const 0 @@ -644,13 +420,13 @@ global.get $~lib/collector/itcm/toSpace i32.ne if - i32.const 880 + i32.const 624 i32.const 1 - block $~lib/collector/itcm/objToRef|inlined.12 (result i32) + block $~lib/collector/itcm/objToRef|inlined.5 (result i32) local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add end f64.convert_i32_u @@ -670,7 +446,7 @@ call $~lib/memory/memory.free end else - i32.const 936 + i32.const 680 i32.const 0 f64.const 0 f64.const 0 @@ -697,7 +473,7 @@ unreachable end ) - (func $~lib/collector/itcm/__ref_collect (; 19 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/__ref_collect (; 11 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 72 i32.const 0 @@ -737,14 +513,14 @@ end end ) - (func $~lib/gc/gc.collect (; 20 ;) (type $FUNCSIG$v) + (func $~lib/gc/gc.collect (; 12 ;) (type $FUNCSIG$v) call $~lib/collector/itcm/__ref_collect ) - (func $~lib/runtime/runtime.adjust (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.adjust (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -752,14 +528,14 @@ i32.sub i32.shl ) - (func $~lib/runtime/runtime.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/runtime/runtime.adjust call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -771,27 +547,205 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $gc/itcm/trace/Ref~iterate (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/collector/itcm/ManagedObject#get:color (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 - local.get $1 - call $gc/itcm/trace/Ref~iterate - end + i32.load offset=8 + i32.const 3 + i32.and ) - (func $~lib/collector/itcm/__ref_register (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#set:next (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.and + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/ManagedObject#unlink (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) - i32.const 1104 + (local $3 i32) + local.get $0 + call $~lib/collector/itcm/ManagedObject#get:next + local.set $1 + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 888 + i32.const 3 + block $~lib/collector/itcm/objToRef|inlined.7 (result i32) + local.get $2 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + block $~lib/collector/itcm/objToRef|inlined.8 (result i32) + local.get $0 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + block $~lib/collector/itcm/objToRef|inlined.9 (result i32) + local.get $1 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/env/trace + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/collector/itcm/ManagedObject#set:next + ) + (func $~lib/collector/itcm/ManagedObjectList#push (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 968 + i32.const 3 + block $~lib/collector/itcm/objToRef|inlined.10 (result i32) + local.get $2 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + block $~lib/collector/itcm/objToRef|inlined.11 (result i32) + local.get $1 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + block $~lib/collector/itcm/objToRef|inlined.12 (result i32) + local.get $0 + local.set $3 + local.get $3 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/env/trace + local.get $1 + local.get $0 + call $~lib/collector/itcm/ManagedObject#set:next + local.get $1 + local.get $2 + i32.store offset=12 + local.get $2 + local.get $1 + call $~lib/collector/itcm/ManagedObject#set:next + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + i32.const 840 + i32.const 1 + block $~lib/collector/itcm/objToRef|inlined.6 (result i32) + local.get $0 + local.set $1 + local.get $1 + global.get $~lib/util/runtime/HEADER_SIZE + i32.add + end + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + local.get $0 + global.get $~lib/collector/itcm/iter + i32.eq + if + local.get $0 + i32.load offset=12 + global.set $~lib/collector/itcm/iter + end + local.get $0 + call $~lib/collector/itcm/ManagedObject#unlink + global.get $~lib/collector/itcm/toSpace + local.get $0 + call $~lib/collector/itcm/ManagedObjectList#push + local.get $0 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 2 + i32.or + i32.store offset=8 + ) + (func $~lib/collector/itcm/__ref_mark (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 800 + i32.const 1 + local.get $0 + f64.convert_i32_u + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + block $~lib/collector/itcm/refToObj|inlined.0 (result i32) + local.get $0 + local.set $1 + local.get $1 + global.get $~lib/util/runtime/HEADER_SIZE + i32.sub + end + local.set $2 + local.get $2 + call $~lib/collector/itcm/ManagedObject#get:color + global.get $~lib/collector/itcm/white + i32.eq + if + local.get $2 + call $~lib/collector/itcm/ManagedObject#makeGray + end + ) + (func $gc/itcm/trace/Ref~traverse (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load + local.tee $1 + if + local.get $1 + call $~lib/collector/itcm/__ref_mark + local.get $1 + call $gc/itcm/trace/Ref~traverse + end + ) + (func $~lib/collector/itcm/__ref_register (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 1088 i32.const 1 local.get $0 f64.convert_i32_u @@ -801,11 +755,11 @@ f64.const 0 call $~lib/env/trace call $~lib/collector/itcm/step - block $~lib/collector/itcm/refToObj|inlined.3 (result i32) + block $~lib/collector/itcm/refToObj|inlined.1 (result i32) local.get $0 local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub end local.set $2 @@ -816,7 +770,7 @@ local.get $2 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/runtime/runtime.register (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.register (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -824,25 +778,25 @@ i32.eqz if i32.const 0 - i32.const 1056 - i32.const 145 + i32.const 1040 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 - i32.const 1056 - i32.const 147 + i32.const 1040 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -854,13 +808,13 @@ call $~lib/collector/itcm/__ref_register local.get $0 ) - (func $gc/itcm/trace/Ref#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $gc/itcm/trace/Ref#constructor (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if i32.const 4 call $~lib/runtime/runtime.allocate - i32.const 5 + i32.const 2 call $~lib/runtime/runtime.register local.set $0 end @@ -869,7 +823,7 @@ i32.store local.get $0 ) - (func $~lib/memory/memory.fill (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1126,19 +1080,19 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 - i32.const 1208 - i32.const 53 - i32.const 51 + i32.const 1192 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -1150,27 +1104,25 @@ local.get $1 call $~lib/memory/memory.fill local.get $2 - i32.const 6 + i32.const 3 call $~lib/runtime/runtime.register ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.tee $2 + local.tee $1 if - local.get $2 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + call $~lib/collector/itcm/__ref_mark local.get $1 - call $~lib/arraybuffer/ArrayBuffer~iterate + call $~lib/arraybuffer/ArrayBuffer~traverse end ) - (func $~lib/collector/itcm/__ref_link (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/__ref_link (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - i32.const 1264 + i32.const 1248 i32.const 2 local.get $0 f64.convert_i32_u @@ -1180,11 +1132,11 @@ f64.const 0 f64.const 0 call $~lib/env/trace - block $~lib/collector/itcm/refToObj|inlined.4 (result i32) + block $~lib/collector/itcm/refToObj|inlined.2 (result i32) local.get $1 local.set $2 local.get $2 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub end local.set $3 @@ -1195,11 +1147,11 @@ i32.eq local.tee $2 if (result i32) - block $~lib/collector/itcm/refToObj|inlined.6 (result i32) + block $~lib/collector/itcm/refToObj|inlined.4 (result i32) local.get $0 local.set $2 local.get $2 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub end call $~lib/collector/itcm/ManagedObject#get:color @@ -1213,21 +1165,21 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 - i32.const 1208 - i32.const 11 - i32.const 65 + i32.const 1192 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -1244,7 +1196,7 @@ if i32.const 12 call $~lib/runtime/runtime.allocate - i32.const 7 + i32.const 4 call $~lib/runtime/runtime.register local.set $0 end @@ -1284,63 +1236,56 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array~iterate (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array~traverse (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - local.get $4 + local.set $3 + local.get $3 if - i32.const 1 - global.set $~lib/argc - local.get $4 - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $gc/itcm/trace/Ref~iterate + local.get $3 + call $~lib/collector/itcm/__ref_mark + local.get $3 + call $gc/itcm/trace/Ref~traverse end - local.get $2 + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 else i32.const 16 call $~lib/runtime/runtime.allocate - i32.const 8 + i32.const 5 call $~lib/runtime/runtime.register end local.get $1 @@ -1355,7 +1300,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/util/memory/memcpy (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 33 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2556,7 +2501,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2787,14 +2732,14 @@ end end ) - (func $~lib/runtime/runtime.reallocate (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -2831,7 +2776,7 @@ i32.const 0 i32.store offset=12 local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -2848,7 +2793,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -2857,8 +2802,8 @@ i32.eqz if i32.const 0 - i32.const 1056 - i32.const 107 + i32.const 1040 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2891,7 +2836,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2906,15 +2851,15 @@ i32.gt_u if local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 - i32.const 1352 - i32.const 13 - i32.const 72 + i32.const 1336 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -2960,7 +2905,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#__unchecked_set (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 37 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2990,7 +2935,7 @@ end end ) - (func $~lib/array/Array#__set (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3016,8 +2961,8 @@ i32.store offset=12 end ) - (func $start:gc/itcm/trace (; 41 ;) (type $FUNCSIG$v) - global.get $~lib/runtime/HEADER_SIZE + (func $start:gc/itcm/trace (; 39 ;) (type $FUNCSIG$v) + global.get $~lib/util/runtime/HEADER_SIZE i32.const 16 i32.eq i32.eqz @@ -3050,7 +2995,7 @@ global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset call $~lib/gc/gc.collect - i32.const 1000 + i32.const 744 i32.const 0 f64.const 0 f64.const 0 @@ -3061,7 +3006,7 @@ i32.const 0 call $gc/itcm/trace/Ref#constructor global.set $gc/itcm/trace/ref - i32.const 1152 + i32.const 1136 i32.const 0 f64.const 0 f64.const 0 @@ -3073,7 +3018,7 @@ i32.const 1 call $~lib/array/Array#constructor global.set $gc/itcm/trace/arr - i32.const 1304 + i32.const 1288 i32.const 0 f64.const 0 f64.const 0 @@ -3085,7 +3030,7 @@ i32.const 0 global.get $gc/itcm/trace/ref call $~lib/array/Array#__set - i32.const 1400 + i32.const 1384 i32.const 0 f64.const 0 f64.const 0 @@ -3099,7 +3044,7 @@ call $~lib/array/Array#__set call $~lib/gc/gc.collect ) - (func $gc/itcm/trace/main (; 42 ;) (type $FUNCSIG$v) + (func $gc/itcm/trace/main (; 40 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -3108,26 +3053,24 @@ global.set $~lib/started end ) - (func $start (; 43 ;) (type $FUNCSIG$v) + (func $start (; 41 ;) (type $FUNCSIG$v) call $start:gc/itcm/trace ) - (func $null (; 44 ;) (type $FUNCSIG$v) + (func $null (; 42 ;) (type $FUNCSIG$v) ) - (func $~iterateRoots (; 45 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) + (func $~lib/gc/__gc_mark_roots (; 43 ;) (type $FUNCSIG$v) + (local $0 i32) global.get $gc/itcm/trace/ref - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end global.get $gc/itcm/trace/arr - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/itcm/__ref_mark end ) ) diff --git a/tests/compiler/gc/rc/global-assign.optimized.wat b/tests/compiler/gc/rc/global-assign.optimized.wat index 800c6b02..83f49926 100644 --- a/tests/compiler/gc/rc/global-assign.optimized.wat +++ b/tests/compiler/gc/rc/global-assign.optimized.wat @@ -143,7 +143,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -158,7 +158,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/rc/global-assign.untouched.wat b/tests/compiler/gc/rc/global-assign.untouched.wat index 96d6bc28..7648165a 100644 --- a/tests/compiler/gc/rc/global-assign.untouched.wat +++ b/tests/compiler/gc/rc/global-assign.untouched.wat @@ -22,10 +22,10 @@ (global $gc/rc/_dummy/retain_ref (mut i32) (i32.const 0)) (global $gc/rc/_dummy/release_count (mut i32) (i32.const 0)) (global $gc/rc/_dummy/release_ref (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $gc/rc/global-assign/global (mut i32) (i32.const 0)) (global $gc/rc/global-assign/globalRef (mut i32) (i32.const 0)) @@ -40,7 +40,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -139,7 +139,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -151,7 +151,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $gc/rc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -180,24 +180,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/rc/global-init.optimized.wat b/tests/compiler/gc/rc/global-init.optimized.wat index 533bec63..c73a497d 100644 --- a/tests/compiler/gc/rc/global-init.optimized.wat +++ b/tests/compiler/gc/rc/global-init.optimized.wat @@ -139,7 +139,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -154,7 +154,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/gc/rc/global-init.untouched.wat b/tests/compiler/gc/rc/global-init.untouched.wat index 85af655f..a94853ad 100644 --- a/tests/compiler/gc/rc/global-init.untouched.wat +++ b/tests/compiler/gc/rc/global-init.untouched.wat @@ -21,10 +21,10 @@ (global $gc/rc/_dummy/retain_ref (mut i32) (i32.const 0)) (global $gc/rc/_dummy/release_count (mut i32) (i32.const 0)) (global $gc/rc/_dummy/release_ref (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $gc/rc/global-init/global (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) @@ -38,7 +38,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -137,7 +137,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -149,7 +149,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $gc/rc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -178,24 +178,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index cf2a5171..20c0d5b4 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -85,7 +85,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -100,7 +100,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index ae1eeea1..06c38856 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -9,10 +9,10 @@ (data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (table $0 2 funcref) (elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 48)) @@ -24,7 +24,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -123,13 +123,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -141,24 +141,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 5291219c..8c080e3f 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -131,7 +131,7 @@ if i32.const 0 i32.const 48 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -146,7 +146,7 @@ if i32.const 0 i32.const 48 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index c59c4bb2..b057ac92 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -12,10 +12,10 @@ (elem (i32.const 0) $null $inlining/func_fe~anonymous|0) (global $inlining/constantGlobal i32 (i32.const 1)) (global $~lib/argc (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 80)) (export "memory" (memory $0)) @@ -288,7 +288,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -387,13 +387,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -405,24 +405,24 @@ if i32.const 0 i32.const 48 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 48 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index c340505a..bef00ff3 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -303,7 +303,7 @@ if i32.const 0 i32.const 464 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -318,7 +318,7 @@ if i32.const 0 i32.const 464 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -2358,7 +2358,7 @@ if i32.const 0 i32.const 1648 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -2451,7 +2451,7 @@ if i32.const 0 i32.const 464 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable @@ -2465,7 +2465,7 @@ if i32.const 0 i32.const 464 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index ccdb1731..7db944f4 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -43,10 +43,10 @@ (elem (i32.const 0) $null) (global $number/a (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -139,7 +139,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -238,13 +238,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/util/number/utoa32_lut (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -399,24 +399,24 @@ if i32.const 0 i32.const 464 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 464 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -493,7 +493,7 @@ ) (func $~lib/string/String#get:length (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 @@ -3416,7 +3416,7 @@ if i32.const 0 i32.const 1648 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -3534,24 +3534,24 @@ if i32.const 0 i32.const 464 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $1 local.get $1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 464 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index a3b86ad0..64c6484a 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -100,7 +100,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -115,7 +115,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat index f818dffe..95ba0e84 100644 --- a/tests/compiler/optional-typeparameters.untouched.wat +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -10,10 +10,10 @@ (data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $optional-typeparameters/tConcrete (mut i32) (i32.const 0)) (global $optional-typeparameters/tDerived (mut i32) (i32.const 0)) @@ -31,7 +31,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -130,13 +130,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -148,24 +148,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index 7e9cbe25..c2d8d100 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -27,7 +27,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -41,7 +41,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -64,7 +64,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -142,7 +142,7 @@ if i32.const 0 i32.const 64 - i32.const 165 + i32.const 166 i32.const 4 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 931b163f..91f9859a 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -13,7 +13,7 @@ (data (i32.const 96) "\01\00\00\00\08\00\00\00n\00u\00l\00l\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/memory/HEAP_BASE i32 (i32.const 112)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -39,7 +39,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -53,7 +53,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -81,7 +81,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -114,7 +114,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -128,7 +128,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -139,7 +139,7 @@ ) (func $~lib/string/String#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 @@ -218,7 +218,7 @@ if i32.const 0 i32.const 64 - i32.const 165 + i32.const 166 i32.const 4 call $~lib/env/abort unreachable @@ -296,7 +296,7 @@ if i32.const 0 i32.const 16 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -310,7 +310,7 @@ if i32.const 0 i32.const 16 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 4f65a23d..f2141526 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -1,6 +1,5 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -26,8 +25,7 @@ (data (i32.const 280) "\04\00\00\00\1e") (data (i32.const 296) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (table $0 13 funcref) - (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) - (global $~lib/argc (mut i32) (i32.const 0)) + (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -41,16 +39,13 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/array/Array~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop ) (func $~lib/array/Array#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -60,7 +55,7 @@ if i32.const 0 i32.const 136 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -81,7 +76,7 @@ if i32.const 0 i32.const 136 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -191,7 +186,7 @@ if i32.const 0 i32.const 296 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -206,7 +201,7 @@ if i32.const 0 i32.const 296 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -257,39 +252,30 @@ i32.const 7 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add local.set $0 loop $continue|0 - local.get $2 + local.get $1 local.get $0 i32.lt_u if - local.get $2 - i32.load - local.set $3 - i32.const 1 - global.set $~lib/argc - local.get $3 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + i32.load + drop + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 6c90a78f..5414e875 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -1,10 +1,10 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) @@ -19,16 +19,15 @@ (data (i32.const 248) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\f8\00\00\00\f8\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 280) "\04\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (table $0 13 funcref) - (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/string/String~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/array-literal/Ref~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/array-literal/RefWithCtor~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) - (global $~lib/argc (mut i32) (i32.const 0)) + (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/string/String~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $std/array-literal/Ref~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $std/array-literal/RefWithCtor~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $std/array-literal/staticArrayI8 i32 (i32.const 48)) (global $std/array-literal/staticArrayI32 i32 (i32.const 216)) (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264)) (global $std/array-literal/i (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/array-literal/dynamicArrayI8 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0)) @@ -40,25 +39,25 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/array/Array~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/collector/dummy/__ref_mark (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/array/Array~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#get:length (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/array/Array#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -67,7 +66,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -77,7 +76,7 @@ if i32.const 0 i32.const 136 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -86,19 +85,16 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/array/Array~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -107,7 +103,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -117,7 +113,7 @@ if i32.const 0 i32.const 136 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -126,11 +122,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/runtime/runtime.adjust (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.adjust (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -138,7 +134,7 @@ i32.sub i32.shl ) - (func $~lib/allocator/arena/__mem_allocate (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__mem_allocate (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -217,19 +213,19 @@ global.set $~lib/allocator/arena/offset local.get $1 ) - (func $~lib/memory/memory.allocate (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/memory/memory.allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/allocator/arena/__mem_allocate return ) - (func $~lib/runtime/runtime.allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.allocate (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/runtime/runtime.adjust call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -241,13 +237,13 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $~lib/collector/dummy/__ref_register (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/dummy/__ref_register (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/runtime/runtime.register (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.register (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -256,24 +252,24 @@ if i32.const 0 i32.const 296 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 296 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -285,13 +281,13 @@ call $~lib/collector/dummy/__ref_register local.get $0 ) - (func $~lib/collector/dummy/__ref_link (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1492,7 +1488,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1723,7 +1719,7 @@ end end ) - (func $~lib/runtime/runtime.makeArray (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 22 ;) (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) @@ -1787,9 +1783,9 @@ end local.get $4 ) - (func $std/array-literal/Ref~iterate (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array-literal/Ref~traverse (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $std/array-literal/Ref#constructor (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-literal/Ref#constructor (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1801,60 +1797,53 @@ end local.get $0 ) - (func $~lib/array/Array~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array~traverse (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $std/array-literal/Ref~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $std/array-literal/Ref~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array-literal/RefWithCtor~iterate (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $std/array-literal/RefWithCtor~traverse (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $std/array-literal/RefWithCtor#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-literal/RefWithCtor#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1866,57 +1855,50 @@ end local.get $0 ) - (func $~lib/array/Array~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array~traverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $std/array-literal/RefWithCtor~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $std/array-literal/RefWithCtor~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $start:std/array-literal (; 30 ;) (type $FUNCSIG$v) + (func $start:std/array-literal (; 31 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -2356,9 +2338,9 @@ unreachable end ) - (func $start (; 31 ;) (type $FUNCSIG$v) + (func $start (; 32 ;) (type $FUNCSIG$v) call $start:std/array-literal ) - (func $null (; 32 ;) (type $FUNCSIG$v) + (func $null (; 33 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 870cc646..a0913776 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -3,9 +3,9 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$fii (func (param i32 i32) (result f32))) @@ -403,10 +403,9 @@ (data (i32.const 8040) "\02\00\00\00\04") (data (i32.const 8056) "\01") (table $0 102 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $~lib/array/Array~iterate $~lib/array/Array~iterate $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $start:std/array~anonymous|47 $~lib/array/Array>~iterate $~lib/string/String~iterate $~lib/array/Array>~iterate $start:std/array~anonymous|48 $~lib/array/Array<~lib/string/String | null>~iterate $~lib/array/Array<~lib/string/String | null>~iterate $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/array/Array>~iterate $~lib/array/Array>~iterate $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/string/String~iterate $~lib/array/Array<~lib/string/String | null>~iterate $~lib/array/Array<~lib/string/String | null>~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $start:std/array~anonymous|47 $~lib/array/Array>~traverse $~lib/string/String~traverse $~lib/array/Array>~traverse $start:std/array~anonymous|48 $~lib/array/Array>~traverse $~lib/array/Array>~traverse $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/array/Array>~traverse $~lib/array/Array>~traverse $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/string/String~traverse $~lib/array/Array>~traverse $~lib/array/Array>~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/Null (mut i32) (i32.const 0)) (global $std/array/arr8 (mut i32) (i32.const 216)) @@ -418,6 +417,7 @@ (global $std/array/cwArr (mut i32) (i32.const 0)) (global $std/array/includes (mut i32) (i32.const 0)) (global $std/array/sarr (mut i32) (i32.const 1752)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $std/array/every (mut i32) (i32.const 0)) (global $std/array/some (mut i32) (i32.const 0)) (global $std/array/newArr (mut i32) (i32.const 0)) @@ -465,7 +465,7 @@ (export "table" (table $0)) (export "main" (func $std/array/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -790,7 +790,7 @@ if i32.const 0 i32.const 80 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -805,7 +805,7 @@ if i32.const 0 i32.const 80 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -823,8 +823,8 @@ if i32.const 0 i32.const 24 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -838,15 +838,10 @@ i32.const 2 call $~lib/runtime/runtime.register ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.tee $0 - if - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) - end + drop ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 9 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 @@ -857,8 +852,8 @@ if i32.const 0 i32.const 24 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -900,15 +895,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc - local.get $0 - i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) - ) - (func $~lib/array/Array#constructor (; 11 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 10 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 16 call $~lib/runtime/runtime.allocate @@ -925,7 +912,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#fill (; 12 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/Array#fill (; 11 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) local.get $0 @@ -990,7 +977,7 @@ call $~lib/memory/memory.fill end ) - (func $~lib/util/memory/memcpy (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1837,7 +1824,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 13 ;) (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 @@ -2031,7 +2018,7 @@ end end ) - (func $~lib/runtime/runtime.makeArray (; 15 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 14 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) i32.const 16 @@ -2072,7 +2059,7 @@ end local.get $1 ) - (func $~lib/array/Array#__get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2080,7 +2067,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2091,7 +2078,7 @@ i32.add i32.load8_u ) - (func $std/array/isArraysEqual (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2138,7 +2125,7 @@ end i32.const 1 ) - (func $~lib/array/Array#fill (; 18 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/Array#fill (; 17 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) local.get $0 i32.load offset=4 @@ -2210,7 +2197,7 @@ end end ) - (func $~lib/array/Array#__get (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2220,7 +2207,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2233,7 +2220,7 @@ i32.add i32.load ) - (func $std/array/isArraysEqual (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -2283,7 +2270,7 @@ end i32.const 1 ) - (func $~lib/runtime/runtime.reallocate (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2361,7 +2348,7 @@ if i32.const 0 i32.const 80 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2387,7 +2374,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureCapacity (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $1 @@ -2403,8 +2390,8 @@ if i32.const 0 i32.const 272 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -2436,7 +2423,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#push (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2459,7 +2446,7 @@ local.get $3 i32.store offset=12 ) - (func $~lib/array/Array#pop (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2470,7 +2457,7 @@ if i32.const 0 i32.const 272 - i32.const 308 + i32.const 309 i32.const 20 call $~lib/env/abort unreachable @@ -2491,7 +2478,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2531,7 +2518,7 @@ call $~lib/memory/memory.copy local.get $4 ) - (func $~lib/array/Array#copyWithin (; 26 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 25 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $0 @@ -2696,7 +2683,7 @@ end local.get $0 ) - (func $~lib/array/Array#unshift (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2725,7 +2712,7 @@ local.get $2 i32.store offset=12 ) - (func $~lib/array/Array#shift (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2738,7 +2725,7 @@ if i32.const 0 i32.const 272 - i32.const 380 + i32.const 381 i32.const 20 call $~lib/env/abort unreachable @@ -2770,7 +2757,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#reverse (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2817,7 +2804,7 @@ end end ) - (func $~lib/array/Array#indexOf (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2881,7 +2868,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -2889,7 +2876,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2981,7 +2968,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__set (; 33 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3010,11 +2997,11 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $~lib/array/Array#findIndex (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3062,17 +3049,17 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3080,7 +3067,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3088,12 +3075,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3141,12 +3128,12 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3154,12 +3141,12 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3167,12 +3154,12 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3220,12 +3207,12 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3233,12 +3220,12 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3246,13 +3233,13 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $~lib/array/Array#forEach (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3295,7 +3282,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3304,7 +3291,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|19 (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/array/Array#pop drop @@ -3313,7 +3300,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|20 (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 i32.eqz @@ -3410,11 +3397,11 @@ end end ) - (func $start:std/array~anonymous|21 (; 57 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 56 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#map (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3472,7 +3459,7 @@ end local.get $4 ) - (func $~lib/array/Array#__get (; 59 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 58 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -3482,7 +3469,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -3495,7 +3482,7 @@ i32.add f32.load ) - (func $start:std/array~anonymous|22 (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3505,7 +3492,7 @@ global.set $std/array/i local.get $0 ) - (func $~lib/array/Array#map (; 61 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#map (; 60 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3560,14 +3547,14 @@ end end ) - (func $start:std/array~anonymous|23 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|24 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3577,12 +3564,12 @@ global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|25 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3638,7 +3625,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3650,7 +3637,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add @@ -3659,7 +3646,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3671,12 +3658,12 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 69 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3720,7 +3707,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 70 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.eqz if @@ -3731,7 +3718,7 @@ end local.get $0 ) - (func $start:std/array~anonymous|32 (; 72 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.eqz if @@ -3742,7 +3729,7 @@ end local.get $0 ) - (func $start:std/array~anonymous|33 (; 73 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 72 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -3750,7 +3737,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 74 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 73 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -3758,7 +3745,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3795,7 +3782,7 @@ end local.get $2 ) - (func $~lib/math/splitMix32 (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 75 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -3827,7 +3814,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 77 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 76 ;) (type $FUNCSIG$vj) (param $0 i64) (local $1 i64) local.get $0 i64.eqz @@ -3892,7 +3879,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -3974,7 +3961,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 79 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4230,7 +4217,7 @@ local.get $5 f32.store ) - (func $~lib/array/Array#sort (; 80 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 f32) (local $4 f32) @@ -4239,7 +4226,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -4298,7 +4285,7 @@ call $~lib/util/sort/weakHeapSort end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 81 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 80 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4327,7 +4314,7 @@ i32.lt_s i32.sub ) - (func $std/array/isArraysEqual (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 f32) (local $4 i32) @@ -4388,7 +4375,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 83 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 82 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4470,7 +4457,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 84 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 83 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4726,7 +4713,7 @@ local.get $5 f64.store ) - (func $~lib/array/Array#sort (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort (; 84 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) @@ -4735,7 +4722,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -4794,7 +4781,7 @@ call $~lib/util/sort/weakHeapSort end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 86 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 85 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -4823,7 +4810,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#__get (; 87 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 86 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -4833,7 +4820,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -4846,7 +4833,7 @@ i32.add f64.load ) - (func $std/array/isArraysEqual (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 87 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -4907,7 +4894,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4989,7 +4976,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 90 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5245,7 +5232,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 91 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5254,7 +5241,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -5316,12 +5303,12 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 92 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 91 ;) (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 (; 93 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 92 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5330,15 +5317,15 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array.create (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 268435452 i32.gt_u if i32.const 0 i32.const 272 - i32.const 43 - i32.const 70 + i32.const 44 + i32.const 62 call $~lib/env/abort unreachable end @@ -5358,7 +5345,7 @@ i32.store offset=12 local.get $0 ) - (func $std/array/createReverseOrderedArray (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5387,7 +5374,7 @@ end local.get $2 ) - (func $~lib/math/NativeMath.random (; 96 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 95 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -5434,7 +5421,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5463,7 +5450,7 @@ end local.get $2 ) - (func $std/array/isSorted (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 97 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 1 @@ -5505,7 +5492,7 @@ end i32.const 1 ) - (func $std/array/assertSorted (; 99 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 98 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array#sort @@ -5521,60 +5508,46 @@ unreachable end ) - (func $std/array/assertSortedDefault (; 100 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 99 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.const 63 call $std/array/assertSorted ) - (func $start:std/array~anonymous|44 (; 101 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 100 ;) (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>~iterate (; 102 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array<~lib/array/Array>~traverse (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $0 loop $continue|0 - local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.lt_u if - local.get $2 - i32.load - local.set $0 - i32.const 1 - global.set $~lib/argc - local.get $0 local.get $1 - call_indirect (type $FUNCSIG$vi) - i32.const 1 - global.set $~lib/argc - local.get $0 i32.load + i32.load + drop local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end ) - (func $~lib/array/Array.create<~lib/array/Array> (; 103 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 102 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 512 i32.const 68 @@ -5592,7 +5565,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 104 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 103 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -5603,7 +5576,7 @@ if i32.const 0 i32.const 272 - i32.const 110 + i32.const 111 i32.const 38 call $~lib/env/abort unreachable @@ -5639,7 +5612,7 @@ i32.store offset=12 end ) - (func $std/array/createReverseOrderedNestedArray (; 105 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 104 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5671,7 +5644,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -5680,7 +5653,7 @@ call $~lib/array/Array#__get i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5689,7 +5662,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -5741,7 +5714,7 @@ call $~lib/util/sort/insertionSort local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 108 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -5749,7 +5722,7 @@ if i32.const 0 i32.const 272 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -5763,7 +5736,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -5776,7 +5749,7 @@ i32.add i32.load ) - (func $std/array/isSorted<~lib/array/Array> (; 109 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 108 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 1 @@ -5818,7 +5791,7 @@ end i32.const 1 ) - (func $std/array/assertSorted<~lib/array/Array> (; 110 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 109 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#sort @@ -5834,44 +5807,35 @@ unreachable end ) - (func $~lib/array/Array>~iterate (; 111 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array>~traverse (; 110 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add local.set $0 loop $continue|0 - local.get $2 + local.get $1 local.get $0 i32.lt_u if - local.get $2 - i32.load - local.set $3 - i32.const 1 - global.set $~lib/argc - local.get $3 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + i32.load + drop + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end ) - (func $~lib/array/Array.create> (; 112 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create> (; 111 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 512 i32.const 71 @@ -5889,7 +5853,7 @@ i32.store offset=12 local.get $0 ) - (func $std/array/createReverseOrderedElementsArray (; 113 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 112 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5922,53 +5886,14 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load local.get $1 i32.load i32.sub ) - (func $~lib/array/Array<~lib/string/String | null>~iterate (; 115 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc - local.get $0 - i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $0 - i32.load offset=4 - local.tee $2 - local.get $0 - i32.load offset=8 - i32.add - local.set $0 - loop $continue|0 - local.get $2 - local.get $0 - i32.lt_u - if - local.get $2 - i32.load - local.tee $3 - if - i32.const 1 - global.set $~lib/argc - local.get $3 - local.get $1 - call_indirect (type $FUNCSIG$vi) - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $continue|0 - end - end - ) - (func $~lib/util/string/compareImpl (; 116 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 114 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) loop $continue|0 local.get $2 @@ -6001,7 +5926,7 @@ end local.get $3 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 117 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6077,7 +6002,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 118 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 116 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $1of1 block $0of1 @@ -6107,7 +6032,7 @@ unreachable end ) - (func $~lib/string/String.__eq (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 117 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -6153,7 +6078,7 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6200,7 +6125,7 @@ end i32.const 1 ) - (func $~lib/array/Array.create<~lib/string/String> (; 121 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 119 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 400 i32.const 78 @@ -6218,7 +6143,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/string/String#charAt (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 3020 @@ -6244,7 +6169,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/string/String#concat (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6293,7 +6218,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/string/String.__concat (; 124 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 122 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 4424 local.get $0 @@ -6301,7 +6226,7 @@ local.get $1 call $~lib/string/String#concat ) - (func $std/array/createRandomString (; 125 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 123 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 4200 @@ -6333,7 +6258,7 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 126 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 124 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) call $~lib/array/Array.create<~lib/string/String> @@ -6360,7 +6285,7 @@ end local.get $1 ) - (func $~lib/string/String#substring (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6369,7 +6294,7 @@ if i32.const 0 i32.const 4376 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -6456,14 +6381,14 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/runtime/runtime.discard (; 128 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.discard (; 126 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.const 8060 i32.le_u if i32.const 0 i32.const 80 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable @@ -6477,13 +6402,13 @@ if i32.const 0 i32.const 80 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable end ) - (func $~lib/array/Array#join_bool (; 129 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_bool (; 127 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6635,7 +6560,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/decimalCount32 (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 128 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 100000 i32.lt_u @@ -6689,7 +6614,7 @@ end end ) - (func $~lib/util/number/utoa32_lut (; 131 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 129 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) i32.const 5092 @@ -6799,7 +6724,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6841,7 +6766,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa_stream (; 133 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 131 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -6885,7 +6810,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7003,12 +6928,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int ) - (func $~lib/util/number/utoa32 (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 134 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7031,7 +6956,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa_stream (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -7055,7 +6980,7 @@ call $~lib/util/number/utoa32_lut local.get $0 ) - (func $~lib/array/Array#join_int (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7173,12 +7098,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int ) - (func $~lib/util/number/genDigits (; 140 ;) (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 (; 138 ;) (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) @@ -7593,7 +7518,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -7852,7 +7777,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 142 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 140 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -8140,7 +8065,7 @@ local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 143 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 141 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8185,7 +8110,7 @@ call $~lib/runtime/runtime.discard local.get $1 ) - (func $~lib/util/number/dtoa_stream (; 144 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 142 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8256,7 +8181,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_flt (; 143 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8372,7 +8297,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8542,18 +8467,18 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String>#join (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String>#join_str ) - (func $std/array/Ref#constructor (; 148 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/Ref#constructor (; 146 ;) (type $FUNCSIG$i) (result i32) i32.const 0 call $~lib/runtime/runtime.allocate i32.const 87 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join_ref (; 149 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_ref (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8686,12 +8611,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#toString (; 150 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa_stream (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 149 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8746,7 +8671,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 152 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 150 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8858,7 +8783,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa_stream (; 153 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -8888,7 +8813,7 @@ call $~lib/util/number/utoa32_lut local.get $1 ) - (func $~lib/array/Array#join_int (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 152 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9004,7 +8929,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/decimalCount64 (; 155 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 153 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 i64.const 1000000000000000 i64.lt_u @@ -9058,7 +8983,7 @@ end end ) - (func $~lib/util/number/utoa64_lut (; 156 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 154 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9155,7 +9080,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 157 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 155 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9197,7 +9122,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa_stream (; 158 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 156 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9237,7 +9162,7 @@ end local.get $1 ) - (func $~lib/array/Array#join_int (; 159 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9353,7 +9278,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa64 (; 160 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 158 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9418,7 +9343,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa_stream (; 161 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 159 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -9481,7 +9406,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9597,12 +9522,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9697,7 +9622,7 @@ local.get $1 end ) - (func $~lib/util/number/itoa_stream (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 163 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -9727,7 +9652,7 @@ call $~lib/util/number/utoa32_lut local.get $1 ) - (func $~lib/array/Array#join_int (; 166 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9839,7 +9764,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9931,47 +9856,35 @@ local.get $1 end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate (; 168 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse (; 166 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $0 loop $continue|0 - local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.lt_u if - local.get $2 + local.get $1 i32.load - local.set $0 - i32.const 1 - global.set $~lib/argc - local.get $0 + call $~lib/array/Array<~lib/array/Array>~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 169 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10066,7 +9979,7 @@ local.get $1 end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 170 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 168 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10158,7 +10071,7 @@ local.get $1 end ) - (func $start:std/array (; 171 ;) (type $FUNCSIG$v) + (func $start:std/array (; 169 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14509,7 +14422,7 @@ unreachable end ) - (func $std/array/main (; 172 ;) (type $FUNCSIG$v) + (func $std/array/main (; 170 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -14518,7 +14431,7 @@ global.set $~lib/started end ) - (func $null (; 173 ;) (type $FUNCSIG$v) + (func $null (; 171 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 6fdba93e..7eb738c1 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -3,9 +3,9 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$fii (func (param i32 i32) (result f32))) @@ -222,14 +222,13 @@ (data (i32.const 8016) "\02\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00") (data (i32.const 8040) "\02\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00") (table $0 102 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/array/P~iterate $~lib/typedarray/Uint8Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $~lib/array/Array~iterate $~lib/array/Array~iterate $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $start:std/array~anonymous|47 $~lib/array/Array>~iterate $std/array/Proxy~iterate $~lib/array/Array>~iterate $start:std/array~anonymous|48 $~lib/array/Array<~lib/string/String | null>~iterate $~lib/array/Array<~lib/string/String | null>~iterate $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/array/Ref~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array>~iterate $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $std/array/P~traverse $~lib/typedarray/Uint8Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $~lib/array/Array~traverse $~lib/array/Array~traverse $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $start:std/array~anonymous|47 $~lib/array/Array>~traverse $std/array/Proxy~traverse $~lib/array/Array>~traverse $start:std/array~anonymous|48 $~lib/array/Array<~lib/string/String | null>~traverse $~lib/array/Array<~lib/string/String | null>~traverse $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/array/Array<~lib/string/String>~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $std/array/Ref~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array>~traverse $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/num (mut i32) (i32.const 1)) (global $std/array/Null (mut i32) (i32.const 0)) @@ -244,6 +243,7 @@ (global $std/array/cwArr (mut i32) (i32.const 0)) (global $std/array/includes (mut i32) (i32.const 0)) (global $std/array/sarr (mut i32) (i32.const 1752)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $std/array/every (mut i32) (i32.const 0)) (global $std/array/some (mut i32) (i32.const 0)) (global $std/array/newArr (mut i32) (i32.const 0)) @@ -297,14 +297,14 @@ (export "table" (table $0)) (export "main" (func $std/array/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/runtime/runtime.adjust (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -403,7 +403,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -415,7 +415,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/memory/memory.fill (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -675,8 +675,8 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/collector/dummy/__ref_register (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) nop @@ -690,24 +690,24 @@ if i32.const 0 i32.const 80 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 80 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -722,13 +722,13 @@ (func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 24 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -743,41 +743,42 @@ i32.const 2 call $~lib/runtime/runtime.register ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/collector/dummy/__ref_mark (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.tee $2 + local.tee $1 if - local.get $2 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + call $~lib/collector/dummy/__ref_mark local.get $1 - call $~lib/arraybuffer/ArrayBuffer~iterate + call $~lib/arraybuffer/ArrayBuffer~traverse end ) - (func $~lib/collector/dummy/__ref_link (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 24 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -839,15 +840,12 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array~iterate (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#constructor (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -869,7 +867,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 if (result i32) local.get $0 @@ -879,7 +877,7 @@ i32.const 1 end ) - (func $~lib/array/Array.isArray<~lib/array/Array> (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array> (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 if (result i32) local.get $0 @@ -889,9 +887,9 @@ i32.const 1 end ) - (func $std/array/P~iterate (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/P~traverse (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $std/array/P#constructor (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/P#constructor (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -903,7 +901,7 @@ end local.get $0 ) - (func $~lib/array/Array.isArray (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -913,13 +911,12 @@ i32.const 0 end ) - (func $~lib/typedarray/Uint8Array~iterate (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array~traverse (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint8Array#constructor (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -935,7 +932,7 @@ local.set $0 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -945,7 +942,7 @@ i32.const 0 end ) - (func $~lib/array/Array.isArray (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -955,7 +952,7 @@ i32.const 0 end ) - (func $~lib/array/Array.isArray<~lib/string/String> (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/string/String> (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -965,15 +962,12 @@ i32.const 0 end ) - (func $~lib/array/Array~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#fill (; 29 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 30 ;) (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) @@ -1049,7 +1043,7 @@ end local.get $0 ) - (func $~lib/util/memory/memcpy (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2250,7 +2244,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2481,7 +2475,7 @@ end end ) - (func $~lib/runtime/runtime.makeArray (; 32 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 33 ;) (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) @@ -2545,11 +2539,11 @@ end local.get $4 ) - (func $~lib/array/Array#get:length (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -2558,7 +2552,7 @@ i32.add i32.load8_u ) - (func $~lib/array/Array#__get (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2568,7 +2562,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2577,7 +2571,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/array/isArraysEqual (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -2632,15 +2626,12 @@ end i32.const 1 ) - (func $~lib/array/Array~iterate (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#fill (; 38 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2726,11 +2717,11 @@ end local.get $0 ) - (func $~lib/array/Array#get:length (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -2739,7 +2730,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2749,7 +2740,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2758,7 +2749,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/array/isArraysEqual (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -2813,17 +2804,17 @@ end i32.const 1 ) - (func $~lib/array/Array#get:length (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) - (func $std/array/internalCapacity (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -2833,21 +2824,21 @@ i32.const 2 i32.shr_s ) - (func $~lib/allocator/arena/__mem_free (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/arena/__mem_free (; 47 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/memory/memory.free (; 47 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/arena/__mem_free ) - (func $~lib/runtime/runtime.reallocate (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -2884,7 +2875,7 @@ i32.const 0 i32.store offset=12 local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -2901,7 +2892,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -2911,7 +2902,7 @@ if i32.const 0 i32.const 80 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2944,7 +2935,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2959,15 +2950,15 @@ i32.gt_u if local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 272 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -3018,7 +3009,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3045,7 +3036,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#__unchecked_get (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -3054,7 +3045,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3064,7 +3055,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -3073,7 +3064,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/array/Array#pop (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -3085,7 +3076,7 @@ if i32.const 0 i32.const 272 - i32.const 308 + i32.const 309 i32.const 20 call $~lib/env/abort unreachable @@ -3106,7 +3097,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3154,7 +3145,7 @@ call $~lib/memory/memory.copy local.get $4 ) - (func $~lib/array/Array#copyWithin (; 55 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 56 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3344,7 +3335,7 @@ end local.get $0 ) - (func $std/array/isArraysEqual (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -3399,7 +3390,7 @@ end i32.const 1 ) - (func $~lib/array/Array#unshift (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3432,7 +3423,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#shift (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3446,7 +3437,7 @@ if i32.const 0 i32.const 272 - i32.const 380 + i32.const 381 i32.const 20 call $~lib/env/abort unreachable @@ -3481,7 +3472,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3536,7 +3527,7 @@ end local.get $0 ) - (func $~lib/array/Array#indexOf (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3608,7 +3599,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -3616,7 +3607,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3724,7 +3715,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#__unchecked_set (; 63 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -3734,7 +3725,7 @@ local.get $2 i32.store ) - (func $~lib/array/Array#__set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 65 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3760,12 +3751,12 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $~lib/array/Array#findIndex (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3824,17 +3815,17 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3843,12 +3834,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|4 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3856,12 +3847,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3921,12 +3912,12 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3935,12 +3926,12 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3948,12 +3939,12 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4012,12 +4003,12 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4026,12 +4017,12 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -4039,13 +4030,13 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 84 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 85 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $~lib/array/Array#forEach (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 86 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4097,7 +4088,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 86 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4107,13 +4098,13 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|18 (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|19 (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/array/Array#pop drop @@ -4122,7 +4113,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|20 (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 90 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 i32.const 0 @@ -4237,19 +4228,16 @@ end end ) - (func $start:std/array~anonymous|21 (; 90 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 91 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array~iterate (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#map (; 92 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 93 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4321,11 +4309,11 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 94 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__unchecked_get (; 95 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -4334,7 +4322,7 @@ i32.add f32.load ) - (func $~lib/array/Array#__get (; 95 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 96 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -4344,7 +4332,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -4353,7 +4341,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $start:std/array~anonymous|22 (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4364,7 +4352,7 @@ global.set $std/array/i local.get $0 ) - (func $~lib/array/Array#map (; 97 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4436,14 +4424,14 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|24 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -4453,12 +4441,12 @@ global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|25 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 101 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4530,7 +4518,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4543,7 +4531,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add @@ -4552,7 +4540,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -4564,12 +4552,12 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 105 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 106 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4627,12 +4615,12 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 107 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 108 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (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 (; 109 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4644,7 +4632,7 @@ i32.gt_s end ) - (func $~lib/array/Array#reduce (; 109 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 110 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4702,7 +4690,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 110 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 111 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4714,7 +4702,7 @@ i32.gt_s end ) - (func $start:std/array~anonymous|33 (; 111 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 112 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -4723,12 +4711,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|34 (; 112 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 113 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 113 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 114 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -4736,12 +4724,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|36 (; 114 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 115 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 115 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 116 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -4786,12 +4774,12 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 116 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 117 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|38 (; 117 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 118 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4803,7 +4791,7 @@ i32.gt_s end ) - (func $~lib/array/Array#reduceRight (; 118 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 119 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -4848,7 +4836,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 119 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 120 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4860,7 +4848,7 @@ i32.gt_s end ) - (func $start:std/array~anonymous|40 (; 120 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 121 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -4869,12 +4857,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|41 (; 121 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|42 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 123 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -4882,7 +4870,7 @@ local.get $1 i32.add ) - (func $~lib/math/murmurHash3 (; 123 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 124 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -4911,7 +4899,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 125 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -4946,7 +4934,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 125 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 126 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -4975,7 +4963,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 126 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 127 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -5071,7 +5059,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 127 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 128 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5371,7 +5359,7 @@ local.get $10 f32.store ) - (func $~lib/array/Array#sort (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -5384,7 +5372,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -5457,7 +5445,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 129 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 130 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5490,7 +5478,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -5509,12 +5497,12 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/builtins/isNaN (; 131 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 132 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 132 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 133 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -5585,15 +5573,12 @@ end i32.const 1 ) - (func $~lib/array/Array~iterate (; 133 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 134 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/sort/insertionSort (; 134 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 135 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -5689,7 +5674,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 135 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 136 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5989,7 +5974,7 @@ local.get $10 f64.store ) - (func $~lib/array/Array#sort (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -6002,7 +5987,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -6075,7 +6060,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 137 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 138 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -6108,7 +6093,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -6127,11 +6112,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 139 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 140 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 140 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 141 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -6140,7 +6125,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 141 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 142 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -6150,7 +6135,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -6159,12 +6144,12 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/builtins/isNaN (; 142 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 143 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 143 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 144 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -6235,7 +6220,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 144 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 145 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6331,7 +6316,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 145 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 146 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6631,7 +6616,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6642,7 +6627,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -6715,12 +6700,12 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 148 ;) (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 (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -6739,7 +6724,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 149 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 150 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6835,7 +6820,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 150 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 151 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7135,7 +7120,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7146,7 +7131,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -7219,7 +7204,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -7228,7 +7213,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -7247,18 +7232,18 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array.create (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.const 2 i32.shr_u i32.gt_u if i32.const 0 i32.const 272 - i32.const 43 - i32.const 70 + i32.const 44 + i32.const 62 call $~lib/env/abort unreachable end @@ -7279,7 +7264,7 @@ i32.store offset=12 local.get $1 ) - (func $std/array/createReverseOrderedArray (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 156 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7313,7 +7298,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 156 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 157 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -7370,7 +7355,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7404,12 +7389,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $break|0 @@ -7457,7 +7442,7 @@ end i32.const 1 ) - (func $std/array/assertSorted (; 160 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 161 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array#sort @@ -7473,7 +7458,7 @@ unreachable end ) - (func $std/array/assertSortedDefault (; 161 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 162 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) i32.const 63 @@ -7481,84 +7466,77 @@ end call $std/array/assertSorted ) - (func $start:std/array~anonymous|43 (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 163 ;) (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 (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 164 ;) (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 (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 166 ;) (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>~iterate (; 166 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>~traverse (; 167 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/array/Array~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/array/Array~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array.create<~lib/array/Array> (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 168 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.const 2 i32.shr_u i32.gt_u if i32.const 0 i32.const 272 - i32.const 43 - i32.const 70 + i32.const 44 + i32.const 62 call $~lib/env/abort unreachable end @@ -7579,7 +7557,7 @@ i32.store offset=12 local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 168 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 169 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $0 @@ -7612,7 +7590,7 @@ call $~lib/collector/dummy/__ref_link end ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 169 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 170 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -7623,7 +7601,7 @@ if i32.const 0 i32.const 272 - i32.const 110 + i32.const 111 i32.const 38 call $~lib/env/abort unreachable @@ -7649,7 +7627,7 @@ i32.store offset=12 end ) - (func $std/array/createReverseOrderedNestedArray (; 170 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 171 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7693,7 +7671,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -7702,7 +7680,7 @@ call $~lib/array/Array#__get i32.sub ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 172 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 173 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7798,7 +7776,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7809,7 +7787,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -7872,11 +7850,11 @@ end local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 174 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 175 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -7885,7 +7863,7 @@ i32.add i32.load ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -7893,7 +7871,7 @@ if i32.const 0 i32.const 272 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -7907,7 +7885,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -7916,7 +7894,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/array/Array> (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $break|0 @@ -7964,7 +7942,7 @@ end i32.const 1 ) - (func $std/array/assertSorted<~lib/array/Array> (; 178 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 179 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#sort @@ -7980,67 +7958,60 @@ unreachable end ) - (func $std/array/Proxy~iterate (; 179 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $std/array/Proxy~traverse (; 180 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/array/Array>~iterate (; 180 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>~traverse (; 181 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $std/array/Proxy~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $std/array/Proxy~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array.create> (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create> (; 182 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.const 2 i32.shr_u i32.gt_u if i32.const 0 i32.const 272 - i32.const 43 - i32.const 70 + i32.const 44 + i32.const 62 call $~lib/env/abort unreachable end @@ -8061,7 +8032,7 @@ i32.store offset=12 local.get $1 ) - (func $std/array/Proxy#constructor (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -8076,7 +8047,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 183 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 184 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $0 @@ -8109,7 +8080,7 @@ call $~lib/collector/dummy/__ref_link end ) - (func $~lib/array/Array>#__set (; 184 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 185 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -8120,7 +8091,7 @@ if i32.const 0 i32.const 272 - i32.const 110 + i32.const 111 i32.const 38 call $~lib/env/abort unreachable @@ -8146,7 +8117,7 @@ i32.store offset=12 end ) - (func $std/array/createReverseOrderedElementsArray (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 186 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8182,14 +8153,14 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load local.get $1 i32.load i32.sub ) - (func $~lib/util/sort/insertionSort> (; 187 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 188 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8285,7 +8256,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8296,7 +8267,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -8359,11 +8330,11 @@ end local.get $0 ) - (func $~lib/array/Array>#get:length (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -8372,7 +8343,7 @@ i32.add i32.load ) - (func $~lib/array/Array>#__get (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -8380,7 +8351,7 @@ if i32.const 0 i32.const 272 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -8394,7 +8365,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -8403,7 +8374,7 @@ local.get $1 call $~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted> (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $break|0 @@ -8451,7 +8422,7 @@ end i32.const 1 ) - (func $std/array/assertSorted> (; 193 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 194 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array>#sort @@ -8467,56 +8438,49 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>~iterate (; 194 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>~traverse (; 195 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - local.get $4 + local.set $3 + local.get $3 if - i32.const 1 - global.set $~lib/argc - local.get $4 - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/string/String~iterate + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/string/String~traverse end - local.get $2 + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 195 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 196 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8612,7 +8576,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8623,7 +8587,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -8686,11 +8650,11 @@ end local.get $0 ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 198 ;) (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 (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -8699,7 +8663,7 @@ i32.add i32.load ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -8709,7 +8673,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -8718,7 +8682,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String | null> (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $break|0 @@ -8766,7 +8730,7 @@ end i32.const 1 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 201 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 202 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String | null>#sort @@ -8782,15 +8746,15 @@ unreachable end ) - (func $~lib/string/String#get:length (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 203 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 203 ;) (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 (; 204 ;) (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) @@ -8843,7 +8807,7 @@ end local.get $5 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8916,7 +8880,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -8937,7 +8901,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -8981,13 +8945,13 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/string/String.__ne (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/string/String.__eq i32.eqz ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 208 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 209 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -9042,64 +9006,57 @@ end i32.const 1 ) - (func $~lib/array/Array<~lib/string/String>~iterate (; 209 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>~traverse (; 210 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/string/String~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/string/String~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array.create<~lib/string/String> (; 210 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 211 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.const 2 i32.shr_u i32.gt_u if i32.const 0 i32.const 272 - i32.const 43 - i32.const 70 + i32.const 44 + i32.const 62 call $~lib/env/abort unreachable end @@ -9120,7 +9077,7 @@ i32.store offset=12 local.get $1 ) - (func $~lib/string/String#charAt (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.const 0 @@ -9129,7 +9086,7 @@ if i32.const 0 i32.const 4376 - i32.const 40 + i32.const 41 i32.const 4 call $~lib/env/abort unreachable @@ -9157,7 +9114,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/string/String#concat (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9207,7 +9164,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/string/String.__concat (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 4424 local.get $0 @@ -9217,7 +9174,7 @@ local.get $1 call $~lib/string/String#concat ) - (func $std/array/createRandomString (; 214 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 215 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -9259,7 +9216,7 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 215 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 216 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $0 @@ -9292,7 +9249,7 @@ call $~lib/collector/dummy/__ref_link end ) - (func $~lib/array/Array<~lib/string/String>#__set (; 216 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 217 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -9303,7 +9260,7 @@ if i32.const 0 i32.const 272 - i32.const 110 + i32.const 111 i32.const 38 call $~lib/env/abort unreachable @@ -9329,7 +9286,7 @@ i32.store offset=12 end ) - (func $std/array/createRandomStringArray (; 217 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 218 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9363,7 +9320,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 218 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 219 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9459,7 +9416,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 219 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9470,7 +9427,7 @@ if i32.const 0 i32.const 272 - i32.const 525 + i32.const 526 i32.const 4 call $~lib/env/abort unreachable @@ -9533,11 +9490,11 @@ end local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 220 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 221 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 221 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -9546,7 +9503,7 @@ i32.add i32.load ) - (func $~lib/array/Array<~lib/string/String>#__get (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -9554,7 +9511,7 @@ if i32.const 0 i32.const 272 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -9568,7 +9525,7 @@ if i32.const 0 i32.const 272 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -9577,7 +9534,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String> (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $break|0 @@ -9625,7 +9582,7 @@ end i32.const 1 ) - (func $std/array/assertSorted<~lib/string/String> (; 224 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 225 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String>#sort @@ -9641,7 +9598,7 @@ unreachable end ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9714,7 +9671,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 226 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 227 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -9735,15 +9692,12 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/array/Array~iterate (; 227 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 228 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/string/String#substring (; 228 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 229 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9759,7 +9713,7 @@ if i32.const 0 i32.const 4376 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -9861,7 +9815,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/runtime/runtime.discard (; 229 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.discard (; 230 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -9870,24 +9824,24 @@ if i32.const 0 i32.const 80 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $1 local.get $1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 80 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable @@ -9895,7 +9849,7 @@ local.get $1 call $~lib/memory/memory.free ) - (func $~lib/array/Array#join_bool (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_bool (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10069,13 +10023,13 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_bool return ) - (func $~lib/util/number/decimalCount32 (; 232 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 233 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -10144,7 +10098,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa32_lut (; 233 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 234 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10287,7 +10241,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 234 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10343,12 +10297,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 236 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 236 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 237 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10407,7 +10361,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 237 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10540,13 +10494,13 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 239 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/util/number/utoa32 (; 239 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10582,12 +10536,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 241 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10626,7 +10580,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10759,28 +10713,25 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/builtins/isFinite (; 244 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 245 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/array/Array~iterate (; 245 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 246 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#__unchecked_get (; 246 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 247 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -10789,15 +10740,12 @@ i32.add i64.load ) - (func $~lib/array/Array~iterate (; 247 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 248 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#__unchecked_get (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10806,7 +10754,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 249 ;) (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 (; 250 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -11377,7 +11325,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 250 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 251 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11710,7 +11658,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 251 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 252 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -12148,7 +12096,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 252 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 253 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12195,7 +12143,7 @@ call $~lib/runtime/runtime.discard local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 253 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 254 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12269,7 +12217,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_flt (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12402,13 +12350,13 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_flt return ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12592,16 +12540,16 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String>#join (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String>#join_str return ) - (func $std/array/Ref~iterate (; 258 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $std/array/Ref~traverse (; 259 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $std/array/Ref#constructor (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -12613,56 +12561,49 @@ end local.get $0 ) - (func $~lib/array/Array~iterate (; 260 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array~traverse (; 261 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - local.get $4 + local.set $3 + local.get $3 if - i32.const 1 - global.set $~lib/argc - local.get $4 - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $std/array/Ref~iterate + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $std/array/Ref~traverse end - local.get $2 + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array#join_ref (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_ref (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12811,26 +12752,23 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 262 ;) (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.get $0 local.get $1 call $~lib/array/Array#join_ref return ) - (func $~lib/array/Array#toString (; 263 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 264 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array#join ) - (func $~lib/array/Array~iterate (; 264 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 265 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/number/itoa (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 266 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -12839,7 +12777,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 266 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12914,7 +12852,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 267 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13047,33 +12985,30 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 269 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 269 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 270 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array#join ) - (func $~lib/array/Array~iterate (; 270 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 271 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/number/itoa (; 271 ;) (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 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 272 ;) (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) @@ -13118,7 +13053,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 273 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 274 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13251,18 +13186,18 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 274 ;) (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.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 275 ;) (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 4528 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 276 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 277 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -13331,7 +13266,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 277 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 278 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -13459,7 +13394,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 278 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 279 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13527,12 +13462,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa (; 279 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 280 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 280 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 281 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13598,7 +13533,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 281 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13731,26 +13666,23 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 283 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 284 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array#join ) - (func $~lib/array/Array~iterate (; 284 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 285 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/number/itoa64 (; 285 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 286 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13840,12 +13772,12 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa (; 286 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 287 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 287 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 288 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13933,7 +13865,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 288 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14066,18 +13998,18 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 290 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 291 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array#join ) - (func $~lib/array/Array<~lib/string/String | null>#join_str (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join_str (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14261,23 +14193,23 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 293 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String | null>#join_str return ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 293 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 294 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/array/Array<~lib/string/String>#toString (; 294 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#toString (; 295 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 295 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14381,71 +14313,64 @@ end local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#join_arr return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 297 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array<~lib/array/Array>~iterate (; 298 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>~traverse (; 299 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/array/Array~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/array/Array~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/util/number/itoa (; 299 ;) (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 (; 300 ;) (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) @@ -14490,7 +14415,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 301 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 302 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14623,13 +14548,13 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array#join (; 302 ;) (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.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 304 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14733,110 +14658,96 @@ end local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 304 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 305 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#join_arr return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 305 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 306 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array<~lib/array/Array>~iterate (; 306 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>~traverse (; 307 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/array/Array~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/array/Array~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~iterate (; 307 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>~traverse (; 308 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/array/Array<~lib/array/Array>~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/array/Array<~lib/array/Array>~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 308 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 309 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14940,13 +14851,13 @@ end local.get $3 ) - (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 (; 310 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#join_arr return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 310 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 311 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15050,18 +14961,18 @@ end local.get $3 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 311 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 312 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 312 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 313 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4528 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join ) - (func $start:std/array (; 313 ;) (type $FUNCSIG$v) + (func $start:std/array (; 314 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19684,7 +19595,7 @@ unreachable end ) - (func $std/array/main (; 314 ;) (type $FUNCSIG$v) + (func $std/array/main (; 315 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -19693,9 +19604,9 @@ global.set $~lib/started end ) - (func $start (; 315 ;) (type $FUNCSIG$v) + (func $start (; 316 ;) (type $FUNCSIG$v) call $start:std/array ) - (func $null (; 316 ;) (type $FUNCSIG$v) + (func $null (; 317 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 8f732502..68b2419e 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -21,6 +21,7 @@ (global $std/arraybuffer/buffer (mut i32) (i32.const 0)) (global $std/arraybuffer/sliced (mut i32) (i32.const 0)) (global $std/arraybuffer/arr8 (mut i32) (i32.const 0)) + (global $~lib/argc (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -326,7 +327,7 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -341,7 +342,7 @@ if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -359,8 +360,8 @@ if i32.const 0 i32.const 16 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -1494,8 +1495,8 @@ if i32.const 0 i32.const 16 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -1563,17 +1564,12 @@ call $~lib/memory/memory.copy local.get $0 ) - (func $~lib/dataview/DataView#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/dataview/DataView#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.const 8 - i32.sub - i32.load offset=4 - local.tee $2 + local.get $1 i32.const 1073741816 i32.gt_u - local.get $2 + local.get $1 local.get $0 i32.const 8 i32.sub @@ -1583,7 +1579,7 @@ if i32.const 0 i32.const 168 - i32.const 22 + i32.const 21 i32.const 6 call $~lib/env/abort unreachable @@ -1592,27 +1588,49 @@ call $~lib/runtime/runtime.allocate i32.const 7 call $~lib/runtime/runtime.register - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.store offset=4 + local.get $2 local.get $1 + i32.store offset=8 + local.get $2 ) - (func $start:std/arraybuffer (; 12 ;) (type $FUNCSIG$v) + (func $~lib/dataview/DataView#constructor|trampoline (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + block $2of2 + block $1of2 + block $outOfRange + global.get $~lib/argc + i32.const 1 + i32.sub + br_table $1of2 $1of2 $2of2 $outOfRange + end + unreachable + end + local.get $0 + i32.const 8 + i32.sub + i32.load offset=4 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/dataview/DataView#constructor + ) + (func $start:std/arraybuffer (; 13 ;) (type $FUNCSIG$v) i32.const 200 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset @@ -1850,11 +1868,13 @@ call $~lib/env/abort unreachable end + i32.const 1 + global.set $~lib/argc block $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array>14 (result i32) i32.const 1 global.get $std/arraybuffer/arr8 i32.load - call $~lib/dataview/DataView#constructor + call $~lib/dataview/DataView#constructor|trampoline br_if $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array>14 drop i32.const 0 @@ -1869,10 +1889,10 @@ unreachable end ) - (func $start (; 13 ;) (type $FUNCSIG$v) + (func $start (; 14 ;) (type $FUNCSIG$v) call $start:std/arraybuffer ) - (func $null (; 14 ;) (type $FUNCSIG$v) + (func $null (; 15 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index ce20ab8f..3b3718db 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -15,16 +15,16 @@ (data (i32.const 160) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/arraybuffer/buffer (mut i32) (i32.const 0)) (global $std/arraybuffer/sliced (mut i32) (i32.const 0)) (global $std/arraybuffer/arr8 (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 200)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -33,7 +33,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -132,13 +132,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/memory/memory.fill (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -407,24 +407,24 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -437,13 +437,13 @@ (func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 16 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -460,7 +460,7 @@ ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) @@ -2020,15 +2020,15 @@ (func $~lib/arraybuffer/ArrayBufferView#constructor (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 16 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -2146,17 +2146,7 @@ (func $~lib/dataview/DataView#constructor (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 - global.get $~lib/builtins/i32.MIN_VALUE - i32.eq - if - local.get $1 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.get $2 - i32.sub - local.set $3 - end - local.get $3 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u local.get $2 local.get $3 @@ -2168,7 +2158,7 @@ if i32.const 0 i32.const 168 - i32.const 22 + i32.const 21 i32.const 6 call $~lib/env/abort unreachable @@ -2212,7 +2202,32 @@ local.get $0 i32.load ) - (func $start:std/arraybuffer (; 23 ;) (type $FUNCSIG$v) + (func $~lib/dataview/DataView#constructor|trampoline (; 23 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~lib/argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) + (func $start:std/arraybuffer (; 24 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -2242,7 +2257,7 @@ end global.get $std/arraybuffer/buffer i32.const 0 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH call $~lib/arraybuffer/ArrayBuffer#slice global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced @@ -2272,7 +2287,7 @@ end global.get $std/arraybuffer/buffer i32.const 1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH call $~lib/arraybuffer/ArrayBuffer#slice global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced @@ -2290,7 +2305,7 @@ end global.get $std/arraybuffer/buffer i32.const -1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH call $~lib/arraybuffer/ArrayBuffer#slice global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced @@ -2380,7 +2395,7 @@ end global.get $std/arraybuffer/buffer i32.const 42 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH call $~lib/arraybuffer/ArrayBuffer#slice global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced @@ -2512,12 +2527,16 @@ call $~lib/env/abort unreachable end - i32.const 0 - global.get $std/arraybuffer/arr8 - call $~lib/typedarray/Uint8Array#get:buffer - i32.const 0 - global.get $~lib/builtins/i32.MIN_VALUE - call $~lib/dataview/DataView#constructor + block (result i32) + i32.const 1 + global.set $~lib/argc + i32.const 0 + global.get $std/arraybuffer/arr8 + call $~lib/typedarray/Uint8Array#get:buffer + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#constructor|trampoline + end call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz if @@ -2529,9 +2548,9 @@ unreachable end ) - (func $start (; 24 ;) (type $FUNCSIG$v) + (func $start (; 25 ;) (type $FUNCSIG$v) call $start:std/arraybuffer ) - (func $null (; 25 ;) (type $FUNCSIG$v) + (func $null (; 26 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 38524913..86170443 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -26,6 +26,7 @@ (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/dataview/array (mut i32) (i32.const 0)) (global $std/dataview/view (mut i32) (i32.const 0)) + (global $~lib/argc (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -164,7 +165,7 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -179,7 +180,7 @@ if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -250,36 +251,22 @@ ) (func $~lib/dataview/DataView#constructor (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - block (result i32) - local.get $2 - i32.const -2147483648 - i32.eq - if - local.get $0 - i32.const 8 - i32.sub - i32.load offset=4 - local.get $1 - i32.sub - local.set $2 - end - local.get $2 - i32.const 1073741816 - i32.gt_u - local.get $1 - local.get $2 - i32.add - local.get $0 - i32.const 8 - i32.sub - i32.load offset=4 - i32.gt_u - i32.or - end + local.get $2 + i32.const 1073741816 + i32.gt_u + local.get $1 + local.get $2 + i32.add + local.get $0 + i32.const 8 + i32.sub + i32.load offset=4 + i32.gt_u + i32.or if i32.const 0 i32.const 152 - i32.const 22 + i32.const 21 i32.const 6 call $~lib/env/abort unreachable @@ -324,7 +311,7 @@ if i32.const 0 i32.const 152 - i32.const 45 + i32.const 44 i32.const 6 call $~lib/env/abort unreachable @@ -390,7 +377,7 @@ if i32.const 0 i32.const 152 - i32.const 59 + i32.const 58 i32.const 7 call $~lib/env/abort unreachable @@ -416,7 +403,7 @@ if i32.const 0 i32.const 152 - i32.const 70 + i32.const 69 i32.const 49 call $~lib/env/abort unreachable @@ -441,7 +428,7 @@ if i32.const 0 i32.const 152 - i32.const 78 + i32.const 77 i32.const 7 call $~lib/env/abort unreachable @@ -483,7 +470,7 @@ if i32.const 0 i32.const 152 - i32.const 87 + i32.const 86 i32.const 7 call $~lib/env/abort unreachable @@ -520,7 +507,7 @@ if i32.const 0 i32.const 152 - i32.const 181 + i32.const 180 i32.const 6 call $~lib/env/abort unreachable @@ -545,7 +532,7 @@ if i32.const 0 i32.const 152 - i32.const 93 + i32.const 92 i32.const 49 call $~lib/env/abort unreachable @@ -570,7 +557,7 @@ if i32.const 0 i32.const 152 - i32.const 101 + i32.const 100 i32.const 6 call $~lib/env/abort unreachable @@ -610,7 +597,7 @@ if i32.const 0 i32.const 152 - i32.const 110 + i32.const 109 i32.const 6 call $~lib/env/abort unreachable @@ -647,7 +634,7 @@ if i32.const 0 i32.const 152 - i32.const 190 + i32.const 189 i32.const 6 call $~lib/env/abort unreachable @@ -672,7 +659,7 @@ if i32.const 0 i32.const 152 - i32.const 119 + i32.const 118 i32.const 6 call $~lib/env/abort unreachable @@ -710,7 +697,7 @@ if i32.const 0 i32.const 152 - i32.const 128 + i32.const 127 i32.const 6 call $~lib/env/abort unreachable @@ -738,7 +725,7 @@ if i32.const 0 i32.const 152 - i32.const 134 + i32.const 133 i32.const 49 call $~lib/env/abort unreachable @@ -756,7 +743,7 @@ if i32.const 0 i32.const 152 - i32.const 142 + i32.const 141 i32.const 6 call $~lib/env/abort unreachable @@ -792,7 +779,7 @@ if i32.const 0 i32.const 152 - i32.const 150 + i32.const 149 i32.const 6 call $~lib/env/abort unreachable @@ -828,7 +815,7 @@ if i32.const 0 i32.const 152 - i32.const 199 + i32.const 198 i32.const 6 call $~lib/env/abort unreachable @@ -852,7 +839,7 @@ if i32.const 0 i32.const 152 - i32.const 155 + i32.const 154 i32.const 49 call $~lib/env/abort unreachable @@ -870,7 +857,7 @@ if i32.const 0 i32.const 152 - i32.const 163 + i32.const 162 i32.const 6 call $~lib/env/abort unreachable @@ -904,7 +891,7 @@ if i32.const 0 i32.const 152 - i32.const 171 + i32.const 170 i32.const 6 call $~lib/env/abort unreachable @@ -940,7 +927,7 @@ if i32.const 0 i32.const 152 - i32.const 207 + i32.const 206 i32.const 6 call $~lib/env/abort unreachable @@ -956,7 +943,30 @@ end i64.store ) - (func $start:std/dataview (; 29 ;) (type $FUNCSIG$v) + (func $~lib/dataview/DataView#constructor|trampoline (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + block $2of2 + block $1of2 + block $outOfRange + global.get $~lib/argc + i32.const 1 + i32.sub + br_table $1of2 $1of2 $2of2 $outOfRange + end + unreachable + end + local.get $0 + i32.const 8 + i32.sub + i32.load offset=4 + local.set $1 + end + local.get $0 + i32.const 0 + local.get $1 + call $~lib/dataview/DataView#constructor + ) + (func $start:std/dataview (; 30 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 224 global.set $~lib/allocator/arena/startOffset @@ -2486,11 +2496,43 @@ call $~lib/env/abort unreachable end + i32.const 1 + global.set $~lib/argc + global.get $std/dataview/array + i32.load + call $~lib/dataview/DataView#constructor|trampoline + global.set $std/dataview/view + global.get $std/dataview/view + local.tee $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + if + i32.const 0 + i32.const 192 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + global.get $std/dataview/view + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 192 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $start (; 30 ;) (type $FUNCSIG$v) + (func $start (; 31 ;) (type $FUNCSIG$v) call $start:std/dataview ) - (func $null (; 31 ;) (type $FUNCSIG$v) + (func $null (; 32 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/dataview.ts b/tests/compiler/std/dataview.ts index 6ff42538..95eb5767 100644 --- a/tests/compiler/std/dataview.ts +++ b/tests/compiler/std/dataview.ts @@ -159,3 +159,7 @@ assert(view.getUint64(0, true) === 2334704782995986958); view.setUint64(0, 11323557176419695287, false); assert(view.getUint64(0, false) === 11323557176419695287); + +view = new DataView(array.buffer); +assert(view.byteOffset == 0); +assert(view.byteLength == 8); diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 713c9b2e..6fc5c830 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -22,15 +22,15 @@ (data (i32.const 184) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/dataview/array (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $std/dataview/view (mut i32) (i32.const 0)) + (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 224)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -39,7 +39,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -138,13 +138,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/memory/memory.fill (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -413,24 +413,24 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -443,13 +443,13 @@ (func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 16 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -467,15 +467,15 @@ (func $~lib/arraybuffer/ArrayBufferView#constructor (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 16 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -555,24 +555,14 @@ ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) (func $~lib/dataview/DataView#constructor (; 12 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 - global.get $~lib/builtins/i32.MIN_VALUE - i32.eq - if - local.get $1 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.get $2 - i32.sub - local.set $3 - end - local.get $3 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u local.get $2 local.get $3 @@ -584,7 +574,7 @@ if i32.const 0 i32.const 152 - i32.const 22 + i32.const 21 i32.const 6 call $~lib/env/abort unreachable @@ -667,7 +657,7 @@ if i32.const 0 i32.const 152 - i32.const 45 + i32.const 44 i32.const 6 call $~lib/env/abort unreachable @@ -744,7 +734,7 @@ if i32.const 0 i32.const 152 - i32.const 59 + i32.const 58 i32.const 7 call $~lib/env/abort unreachable @@ -776,7 +766,7 @@ if i32.const 0 i32.const 152 - i32.const 70 + i32.const 69 i32.const 49 call $~lib/env/abort unreachable @@ -818,7 +808,7 @@ if i32.const 0 i32.const 152 - i32.const 78 + i32.const 77 i32.const 7 call $~lib/env/abort unreachable @@ -868,7 +858,7 @@ if i32.const 0 i32.const 152 - i32.const 87 + i32.const 86 i32.const 7 call $~lib/env/abort unreachable @@ -943,7 +933,7 @@ if i32.const 0 i32.const 152 - i32.const 181 + i32.const 180 i32.const 6 call $~lib/env/abort unreachable @@ -972,7 +962,7 @@ if i32.const 0 i32.const 152 - i32.const 93 + i32.const 92 i32.const 49 call $~lib/env/abort unreachable @@ -1012,7 +1002,7 @@ if i32.const 0 i32.const 152 - i32.const 101 + i32.const 100 i32.const 6 call $~lib/env/abort unreachable @@ -1048,7 +1038,7 @@ if i32.const 0 i32.const 152 - i32.const 110 + i32.const 109 i32.const 6 call $~lib/env/abort unreachable @@ -1084,7 +1074,7 @@ if i32.const 0 i32.const 152 - i32.const 190 + i32.const 189 i32.const 6 call $~lib/env/abort unreachable @@ -1119,7 +1109,7 @@ if i32.const 0 i32.const 152 - i32.const 119 + i32.const 118 i32.const 6 call $~lib/env/abort unreachable @@ -1159,7 +1149,7 @@ if i32.const 0 i32.const 152 - i32.const 128 + i32.const 127 i32.const 6 call $~lib/env/abort unreachable @@ -1193,7 +1183,7 @@ if i32.const 0 i32.const 152 - i32.const 134 + i32.const 133 i32.const 49 call $~lib/env/abort unreachable @@ -1219,7 +1209,7 @@ if i32.const 0 i32.const 152 - i32.const 142 + i32.const 141 i32.const 6 call $~lib/env/abort unreachable @@ -1253,7 +1243,7 @@ if i32.const 0 i32.const 152 - i32.const 150 + i32.const 149 i32.const 6 call $~lib/env/abort unreachable @@ -1287,7 +1277,7 @@ if i32.const 0 i32.const 152 - i32.const 199 + i32.const 198 i32.const 6 call $~lib/env/abort unreachable @@ -1315,7 +1305,7 @@ if i32.const 0 i32.const 152 - i32.const 155 + i32.const 154 i32.const 49 call $~lib/env/abort unreachable @@ -1341,7 +1331,7 @@ if i32.const 0 i32.const 152 - i32.const 163 + i32.const 162 i32.const 6 call $~lib/env/abort unreachable @@ -1375,7 +1365,7 @@ if i32.const 0 i32.const 152 - i32.const 171 + i32.const 170 i32.const 6 call $~lib/env/abort unreachable @@ -1409,7 +1399,7 @@ if i32.const 0 i32.const 152 - i32.const 207 + i32.const 206 i32.const 6 call $~lib/env/abort unreachable @@ -1429,7 +1419,43 @@ end i64.store ) - (func $start:std/dataview (; 42 ;) (type $FUNCSIG$v) + (func $~lib/dataview/DataView#constructor|trampoline (; 42 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~lib/argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/dataview/DataView#constructor + ) + (func $~lib/dataview/DataView#get:byteOffset (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/dataview/DataView#get:byteLength (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $start:std/dataview (; 45 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -3121,10 +3147,47 @@ call $~lib/env/abort unreachable end + block (result i32) + i32.const 1 + global.set $~lib/argc + i32.const 0 + global.get $std/dataview/array + call $~lib/typedarray/Uint8Array#get:buffer + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#constructor|trampoline + end + global.set $std/dataview/view + global.get $std/dataview/view + call $~lib/dataview/DataView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + global.get $std/dataview/view + call $~lib/dataview/DataView#get:byteLength + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $start (; 43 ;) (type $FUNCSIG$v) + (func $start (; 46 ;) (type $FUNCSIG$v) call $start:std/dataview ) - (func $null (; 44 ;) (type $FUNCSIG$v) + (func $null (; 47 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index fea96f3c..120ffe2d 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -89,7 +89,7 @@ if i32.const 0 i32.const 48 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -104,7 +104,7 @@ if i32.const 0 i32.const 48 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index 790f2afa..48cd0512 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -17,10 +17,10 @@ (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/date/creationTime (mut i64) (i64.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/date/date (mut i32) (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 80)) @@ -31,7 +31,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -130,13 +130,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -148,24 +148,24 @@ if i32.const 0 i32.const 48 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 48 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 554280c0..33697e2f 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -9,14 +9,14 @@ (data (i32.const 48) "\01\00\00\00\06\00\00\00a\00b\00c\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/memory/HEAP_BASE i32 (i32.const 64)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $~lib/string/String#get:length (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 7b4ed5a5..88dff2ae 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1,11 +1,11 @@ (module (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iij (func (param i32 i64) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) @@ -30,10 +30,9 @@ (data (i32.const 112) "\03\00\00\00\14") (data (i32.const 128) "s\00t\00d\00/\00m\00a\00p\00.\00t\00s") (table $0 23 funcref) - (elem (i32.const 0) $null $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate) + (elem (i32.const 0) $null $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -128,23 +127,15 @@ i32.const 16 i32.add ) - (func $~lib/map/Map~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=8 - local.set $0 - i32.const 1 - global.set $~lib/argc - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop ) - (func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -155,7 +146,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -170,7 +161,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -399,8 +390,8 @@ if i32.const 0 i32.const 72 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 13a554ca..5576d309 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -1,11 +1,11 @@ (module (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iij (func (param i32 i64) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) @@ -23,14 +23,13 @@ (data (i32.const 56) "\03\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 112) "\03\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00") (table $0 23 funcref) - (elem (i32.const 0) $null $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate $~lib/map/Map~iterate) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (elem (i32.const 0) $null $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse $~lib/map/Map~traverse) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) - (global $~lib/argc (mut i32) (i32.const 0)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $~lib/memory/HEAP_BASE i32 (i32.const 148)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) @@ -41,7 +40,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -140,7 +139,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -152,33 +151,30 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $~lib/map/Map~iterate (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc - local.get $0 - i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 - local.get $1 - call_indirect (type $FUNCSIG$vi) - ) - (func $~lib/string/String~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - ) - (func $~lib/collector/dummy/__ref_register (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/dummy/__ref_mark (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load + call $~lib/collector/dummy/__ref_mark + local.get $0 + i32.load offset=8 + local.set $1 + local.get $1 + call $~lib/collector/dummy/__ref_mark + ) + (func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + ) + (func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -187,24 +183,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -216,7 +212,7 @@ call $~lib/collector/dummy/__ref_register local.get $0 ) - (func $~lib/memory/memory.fill (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -473,19 +469,19 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 72 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -500,13 +496,13 @@ i32.const 4 call $~lib/runtime/runtime.register ) - (func $~lib/collector/dummy/__ref_link (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/map/Map#clear (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -575,7 +571,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -609,14 +605,14 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash8 (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash8 (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const -2128831035 local.get $0 i32.xor i32.const 16777619 i32.mul ) - (func $~lib/map/Map#find (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -671,7 +667,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -690,7 +686,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -864,7 +860,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -972,7 +968,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -998,11 +994,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1079,7 +1075,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 24 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 25 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -1463,24 +1459,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1549,7 +1539,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -1583,7 +1573,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -1636,7 +1626,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -1653,7 +1643,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1827,7 +1817,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1933,7 +1923,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -1957,11 +1947,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2036,7 +2026,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 35 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 36 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -2406,24 +2396,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2492,7 +2476,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -2526,7 +2510,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -2548,7 +2532,7 @@ local.set $1 local.get $1 ) - (func $~lib/map/Map#find (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2603,7 +2587,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -2622,7 +2606,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2796,7 +2780,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 43 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2904,7 +2888,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2930,11 +2914,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3011,7 +2995,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 47 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 48 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -3395,24 +3379,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 49 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 49 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3481,7 +3459,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -3515,7 +3493,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -3568,7 +3546,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -3585,7 +3563,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3759,7 +3737,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3865,7 +3843,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3889,11 +3867,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3968,7 +3946,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 58 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 59 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4338,24 +4316,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 60 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 60 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 61 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4424,7 +4396,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -4458,7 +4430,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -4500,7 +4472,7 @@ local.set $1 local.get $1 ) - (func $~lib/map/Map#find (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4551,7 +4523,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -4566,7 +4538,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 65 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 66 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4740,7 +4712,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4844,7 +4816,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4866,11 +4838,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4943,7 +4915,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 70 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 71 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5299,24 +5271,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 72 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 72 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 73 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5385,7 +5351,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -5419,7 +5385,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -5470,7 +5436,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5485,7 +5451,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 76 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 77 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5659,7 +5625,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5763,7 +5729,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5785,11 +5751,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5862,7 +5828,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 81 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 82 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6218,24 +6184,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 83 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 83 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 84 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6304,7 +6264,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 84 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -6338,7 +6298,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 85 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 86 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6426,7 +6386,7 @@ local.set $3 local.get $3 ) - (func $~lib/map/Map#find (; 86 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 87 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -6477,7 +6437,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 87 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 88 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -6492,7 +6452,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 88 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 89 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6667,7 +6627,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 89 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 90 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) @@ -6772,7 +6732,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 90 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 91 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) local.get $0 @@ -6794,11 +6754,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 91 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 92 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 92 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#delete (; 93 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6872,7 +6832,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 93 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 94 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -7235,24 +7195,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 96 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7321,7 +7275,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -7355,7 +7309,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 97 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 98 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -7406,7 +7360,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 98 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 99 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -7421,7 +7375,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 99 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 100 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7596,7 +7550,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 100 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 101 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) @@ -7701,7 +7655,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 101 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 102 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) local.get $0 @@ -7723,11 +7677,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 103 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 103 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#delete (; 104 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -7801,7 +7755,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 104 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 105 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -8164,24 +8118,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 105 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 106 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 106 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 107 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8250,7 +8198,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 107 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 108 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -8284,7 +8232,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 108 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 109 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -8335,7 +8283,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 109 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#has (; 110 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) local.get $0 local.get $1 @@ -8351,7 +8299,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 110 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 111 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8527,7 +8475,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 111 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/map/Map#set (; 112 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) (local $3 f32) (local $4 i32) (local $5 i32) @@ -8633,7 +8581,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 112 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#get (; 113 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) local.get $0 @@ -8656,11 +8604,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 113 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 114 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#delete (; 115 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -8735,7 +8683,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 115 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 116 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -9098,24 +9046,18 @@ unreachable end ) - (func $~lib/map/Map~iterate (; 116 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/map/Map~traverse (; 117 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/map/Map#clear (; 117 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 118 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9184,7 +9126,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 119 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -9218,7 +9160,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 119 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 120 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -9269,7 +9211,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 120 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#has (; 121 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) local.get $0 local.get $1 @@ -9285,7 +9227,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 121 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 122 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9461,7 +9403,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/map/Map#set (; 122 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) + (func $~lib/map/Map#set (; 123 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) (local $3 f64) (local $4 i32) (local $5 i32) @@ -9567,7 +9509,7 @@ i32.store end ) - (func $~lib/map/Map#get (; 123 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#get (; 124 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) local.get $0 @@ -9590,11 +9532,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 125 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 125 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#delete (; 126 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) (local $4 i32) @@ -9669,7 +9611,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 126 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 127 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -10032,7 +9974,7 @@ unreachable end ) - (func $start:std/map (; 127 ;) (type $FUNCSIG$v) + (func $start:std/map (; 128 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -10054,9 +9996,9 @@ call $std/map/testNumeric call $std/map/testNumeric ) - (func $start (; 128 ;) (type $FUNCSIG$v) + (func $start (; 129 ;) (type $FUNCSIG$v) call $start:std/map ) - (func $null (; 129 ;) (type $FUNCSIG$v) + (func $null (; 130 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 1b0be8f1..e04f158d 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -84,7 +84,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -99,7 +99,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index 7ed90566..9b9714d5 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -10,10 +10,10 @@ (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/new/AClass.aStaticField (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/new/aClass (mut i32) (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 48)) @@ -24,7 +24,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -123,13 +123,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -141,24 +141,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/object-literal.optimized.wat b/tests/compiler/std/object-literal.optimized.wat index e4e009da..59e251fc 100644 --- a/tests/compiler/std/object-literal.optimized.wat +++ b/tests/compiler/std/object-literal.optimized.wat @@ -1,6 +1,5 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) @@ -14,7 +13,7 @@ (data (i32.const 96) "\01\00\00\00*") (data (i32.const 112) "s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") (table $0 4 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $std/object-literal/Foo~iterate $~lib/string/String~iterate) + (elem (i32.const 0) $null $~lib/string/String~traverse $std/object-literal/Foo~traverse $~lib/string/String~traverse) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) @@ -22,7 +21,7 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -114,15 +113,10 @@ i32.const 16 i32.add ) - (func $std/object-literal/Foo~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/object-literal/Foo~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load offset=4 - local.tee $0 - if - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) - end + drop ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -132,7 +126,7 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -147,7 +141,7 @@ if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/object-literal.untouched.wat b/tests/compiler/std/object-literal.untouched.wat index ee2ec8a2..33aa46c6 100644 --- a/tests/compiler/std/object-literal.untouched.wat +++ b/tests/compiler/std/object-literal.untouched.wat @@ -1,6 +1,5 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) @@ -12,11 +11,11 @@ (data (i32.const 48) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 96) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00") (table $0 4 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $std/object-literal/Foo~iterate $std/object-literal/Foo2~iterate) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (elem (i32.const 0) $null $~lib/string/String~traverse $std/object-literal/Foo~traverse $std/object-literal/Foo2~traverse) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 156)) (global $~lib/capabilities i32 (i32.const 2)) @@ -24,14 +23,14 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/runtime/runtime.adjust (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -130,7 +129,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -142,27 +141,28 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $std/object-literal/Foo~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 - local.get $1 - call $~lib/string/String~iterate - end - ) - (func $~lib/collector/dummy/__ref_register (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/dummy/__ref_mark (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/object-literal/Foo~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + if + local.get $1 + call $~lib/collector/dummy/__ref_mark + local.get $1 + call $~lib/string/String~traverse + end + ) + (func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -171,24 +171,24 @@ if i32.const 0 i32.const 64 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 64 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -200,15 +200,15 @@ call $~lib/collector/dummy/__ref_register local.get $0 ) - (func $~lib/string/String#get:length (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 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 (; 11 ;) (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 +261,7 @@ end local.get $5 ) - (func $~lib/string/String.__eq (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -305,7 +305,7 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $std/object-literal/bar (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/object-literal/bar (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load i32.const 1 @@ -333,10 +333,10 @@ unreachable end ) - (func $std/object-literal/Foo2~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $std/object-literal/Foo2~traverse (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $std/object-literal/bar2 (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/object-literal/bar2 (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load i32.const 2 @@ -351,7 +351,7 @@ unreachable end ) - (func $std/object-literal/Foo2#test (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/object-literal/Foo2#test (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load i32.const 3 @@ -366,7 +366,7 @@ unreachable end ) - (func $start:std/object-literal (; 16 ;) (type $FUNCSIG$v) + (func $start:std/object-literal (; 17 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -420,9 +420,9 @@ end call $std/object-literal/Foo2#test ) - (func $start (; 17 ;) (type $FUNCSIG$v) + (func $start (; 18 ;) (type $FUNCSIG$v) call $start:std/object-literal ) - (func $null (; 18 ;) (type $FUNCSIG$v) + (func $null (; 19 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index d4406de5..f8110834 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -167,7 +167,7 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -182,7 +182,7 @@ if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 3ef068ef..4bd6db47 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -12,10 +12,10 @@ (data (i32.const 48) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/operator-overloading/a1 (mut i32) (i32.const 0)) (global $std/operator-overloading/a2 (mut i32) (i32.const 0)) @@ -92,7 +92,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -191,13 +191,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -209,24 +209,24 @@ if i32.const 0 i32.const 16 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 16 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/runtime.optimized.wat b/tests/compiler/std/runtime.optimized.wat index 0fcb6ca0..5ee1173b 100644 --- a/tests/compiler/std/runtime.optimized.wat +++ b/tests/compiler/std/runtime.optimized.wat @@ -1,9 +1,9 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -24,7 +24,7 @@ (data (i32.const 216) "\03\00\00\00\1e") (data (i32.const 232) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (table $0 4 funcref) - (elem (i32.const 0) $null $std/runtime/A~iterate $std/runtime/A~iterate $std/runtime/A~iterate) + (elem (i32.const 0) $null $std/runtime/A~traverse $std/runtime/A~traverse $std/runtime/A~traverse) (global $std/runtime/register_ref (mut i32) (i32.const 0)) (global $std/runtime/barrier1 (mut i32) (i32.const 0)) (global $std/runtime/barrier2 (mut i32) (i32.const 0)) @@ -44,7 +44,7 @@ (export "table" (table $0)) (export "main" (func $std/runtime/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $std/runtime/A~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/runtime/A~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/tlsf/Root#setSLMap (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -2563,7 +2563,7 @@ if i32.const 0 i32.const 232 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -2600,7 +2600,7 @@ if i32.const 0 i32.const 232 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable @@ -2615,7 +2615,7 @@ if i32.const 0 i32.const 232 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable @@ -2631,7 +2631,7 @@ if i32.const 0 i32.const 232 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -2646,7 +2646,7 @@ if i32.const 0 i32.const 232 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -2697,7 +2697,7 @@ else i32.const 0 i32.const 24 - i32.const 37 + i32.const 41 i32.const 2 call $~lib/env/abort unreachable @@ -2808,7 +2808,7 @@ if i32.const 0 i32.const 24 - i32.const 52 + i32.const 56 i32.const 0 call $~lib/env/abort unreachable @@ -2820,7 +2820,7 @@ if i32.const 0 i32.const 24 - i32.const 53 + i32.const 57 i32.const 0 call $~lib/env/abort unreachable @@ -2834,7 +2834,7 @@ if i32.const 0 i32.const 24 - i32.const 54 + i32.const 58 i32.const 0 call $~lib/env/abort unreachable @@ -2846,7 +2846,7 @@ if i32.const 0 i32.const 24 - i32.const 55 + i32.const 59 i32.const 0 call $~lib/env/abort unreachable @@ -2861,7 +2861,7 @@ if i32.const 0 i32.const 24 - i32.const 57 + i32.const 61 i32.const 0 call $~lib/env/abort unreachable @@ -2877,7 +2877,7 @@ if i32.const 0 i32.const 24 - i32.const 59 + i32.const 63 i32.const 0 call $~lib/env/abort unreachable @@ -2893,7 +2893,7 @@ if i32.const 0 i32.const 24 - i32.const 62 + i32.const 66 i32.const 0 call $~lib/env/abort unreachable @@ -2909,7 +2909,7 @@ if i32.const 0 i32.const 24 - i32.const 66 + i32.const 70 i32.const 0 call $~lib/env/abort unreachable @@ -2925,7 +2925,7 @@ if i32.const 0 i32.const 24 - i32.const 68 + i32.const 72 i32.const 0 call $~lib/env/abort unreachable @@ -2937,7 +2937,7 @@ if i32.const 0 i32.const 24 - i32.const 69 + i32.const 73 i32.const 0 call $~lib/env/abort unreachable @@ -2954,7 +2954,7 @@ if i32.const 0 i32.const 24 - i32.const 72 + i32.const 76 i32.const 0 call $~lib/env/abort unreachable @@ -2970,7 +2970,7 @@ if i32.const 0 i32.const 24 - i32.const 73 + i32.const 77 i32.const 0 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/runtime.ts b/tests/compiler/std/runtime.ts index 48bfdffc..5db24ad3 100644 --- a/tests/compiler/std/runtime.ts +++ b/tests/compiler/std/runtime.ts @@ -1,6 +1,7 @@ import "allocator/tlsf"; // import { classId, ADJUSTOBLOCK, ALLOCATE, REALLOCATE, REGISTER, DISCARD, HEADER, HEADER_SIZE, HEADER_MAGIC } from "runtime"; -import { runtime, HEADER, HEADER_SIZE, HEADER_MAGIC, classId } from "runtime"; +import { HEADER, HEADER_SIZE, HEADER_MAGIC } from "util/runtime"; +import { runtime, __runtime_id } from "runtime"; @start export function main(): void {} @@ -24,9 +25,12 @@ var link_parentRef: usize = 0; @global function __ref_collect(): void { } +@global function __ref_mark(ref: usize): void { +} + class A {} class B {} -assert(classId() != classId()); +assert(__runtime_id() != __runtime_id()); function isPowerOf2(x: i32): bool { return x != 0 && (x & (x - 1)) == 0; @@ -62,10 +66,10 @@ var ref3 = runtime.allocate(barrier2); assert(ref1 == ref3); // reuses space of ref1 (free'd in realloc), ref2 (explicitly free'd) var ref4 = runtime.allocate(barrier1); -runtime.register(ref4, classId()); // should call __gc_register +runtime.register(ref4, __runtime_id()); // should call __gc_register assert(register_ref == ref4); var header4 = changetype
(register_ref - HEADER_SIZE); -assert(header4.classId == classId()); +assert(header4.classId == __runtime_id()); assert(header4.payloadSize == barrier1); var ref5 = runtime.allocate(10); diff --git a/tests/compiler/std/runtime.untouched.wat b/tests/compiler/std/runtime.untouched.wat index abc4c22b..e44b701d 100644 --- a/tests/compiler/std/runtime.untouched.wat +++ b/tests/compiler/std/runtime.untouched.wat @@ -1,9 +1,9 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -18,11 +18,11 @@ (data (i32.const 152) "\03\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00") (data (i32.const 216) "\03\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (table $0 4 funcref) - (elem (i32.const 0) $null $std/runtime/A~iterate $std/runtime/B~iterate $~lib/string/String~iterate) + (elem (i32.const 0) $null $std/runtime/A~traverse $std/runtime/B~traverse $~lib/string/String~traverse) (global $std/runtime/register_ref (mut i32) (i32.const 0)) (global $std/runtime/link_ref (mut i32) (i32.const 0)) (global $std/runtime/link_parentRef (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $std/runtime/barrier1 (mut i32) (i32.const 0)) (global $std/runtime/barrier2 (mut i32) (i32.const 0)) (global $std/runtime/barrier3 (mut i32) (i32.const 0)) @@ -43,7 +43,7 @@ (global $~lib/allocator/tlsf/TAGS i32 (i32.const 3)) (global $~lib/allocator/tlsf/Block.MAX_SIZE i32 (i32.const 1073741824)) (global $~lib/allocator/tlsf/SB_SIZE i32 (i32.const 256)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $std/runtime/ref1 (mut i32) (i32.const 0)) (global $std/runtime/header1 (mut i32) (i32.const 0)) (global $std/runtime/ref2 (mut i32) (i32.const 0)) @@ -60,18 +60,18 @@ (export "table" (table $0)) (export "main" (func $std/runtime/main)) (export ".capabilities" (global $~lib/capabilities)) - (func $std/runtime/A~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/runtime/A~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $std/runtime/B~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/runtime/B~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) ) - (func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/runtime/runtime.adjust (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -1469,7 +1469,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -1481,7 +1481,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/util/memory/memcpy (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -3231,7 +3231,7 @@ (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -3268,7 +3268,7 @@ i32.const 0 i32.store offset=12 local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -3285,7 +3285,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -3295,7 +3295,7 @@ if i32.const 0 i32.const 232 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -3337,24 +3337,24 @@ if i32.const 0 i32.const 232 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $1 local.get $1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 232 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable @@ -3371,24 +3371,24 @@ if i32.const 0 i32.const 232 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 232 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -3402,13 +3402,13 @@ ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) (func $~lib/string/String#get:length (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 @@ -3423,7 +3423,7 @@ if i32.const 0 i32.const 24 - i32.const 29 + i32.const 33 i32.const 0 call $~lib/env/abort unreachable @@ -3436,7 +3436,7 @@ if i32.const 0 i32.const 24 - i32.const 35 + i32.const 39 i32.const 0 call $~lib/env/abort unreachable @@ -3457,7 +3457,7 @@ if i32.const 0 i32.const 24 - i32.const 37 + i32.const 41 i32.const 2 call $~lib/env/abort unreachable @@ -3549,18 +3549,18 @@ call $~lib/runtime/runtime.allocate global.set $std/runtime/ref1 global.get $std/runtime/ref1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub global.set $std/runtime/header1 global.get $std/runtime/header1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 52 + i32.const 56 i32.const 0 call $~lib/env/abort unreachable @@ -3573,7 +3573,7 @@ if i32.const 0 i32.const 24 - i32.const 53 + i32.const 57 i32.const 0 call $~lib/env/abort unreachable @@ -3587,7 +3587,7 @@ if i32.const 0 i32.const 24 - i32.const 54 + i32.const 58 i32.const 0 call $~lib/env/abort unreachable @@ -3600,7 +3600,7 @@ if i32.const 0 i32.const 24 - i32.const 55 + i32.const 59 i32.const 0 call $~lib/env/abort unreachable @@ -3616,13 +3616,13 @@ if i32.const 0 i32.const 24 - i32.const 57 + i32.const 61 i32.const 0 call $~lib/env/abort unreachable end global.get $std/runtime/ref2 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub global.set $std/runtime/header2 global.get $std/runtime/header2 @@ -3633,7 +3633,7 @@ if i32.const 0 i32.const 24 - i32.const 59 + i32.const 63 i32.const 0 call $~lib/env/abort unreachable @@ -3650,7 +3650,7 @@ if i32.const 0 i32.const 24 - i32.const 62 + i32.const 66 i32.const 0 call $~lib/env/abort unreachable @@ -3669,13 +3669,13 @@ if i32.const 0 i32.const 24 - i32.const 66 + i32.const 70 i32.const 0 call $~lib/env/abort unreachable end global.get $std/runtime/register_ref - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub global.set $std/runtime/header4 global.get $std/runtime/header4 @@ -3686,7 +3686,7 @@ if i32.const 0 i32.const 24 - i32.const 68 + i32.const 72 i32.const 0 call $~lib/env/abort unreachable @@ -3699,7 +3699,7 @@ if i32.const 0 i32.const 24 - i32.const 69 + i32.const 73 i32.const 0 call $~lib/env/abort unreachable @@ -3715,7 +3715,7 @@ if i32.const 0 i32.const 24 - i32.const 72 + i32.const 76 i32.const 0 call $~lib/env/abort unreachable @@ -3728,7 +3728,7 @@ if i32.const 0 i32.const 24 - i32.const 73 + i32.const 77 i32.const 0 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 2932bcfb..10d5f124 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1,10 +1,10 @@ (module (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iij (func (param i32 i64) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) @@ -26,10 +26,9 @@ (data (i32.const 112) "\03\00\00\00\14") (data (i32.const 128) "s\00t\00d\00/\00s\00e\00t\00.\00t\00s") (table $0 23 funcref) - (elem (i32.const 0) $null $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate) + (elem (i32.const 0) $null $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -124,23 +123,15 @@ i32.const 16 i32.add ) - (func $~lib/set/Set~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=8 - local.set $0 - i32.const 1 - global.set $~lib/argc - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop ) - (func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -151,7 +142,7 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -166,7 +157,7 @@ if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -395,8 +386,8 @@ if i32.const 0 i32.const 72 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index ff6f1e6b..8c4448be 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -1,11 +1,11 @@ (module (type $FUNCSIG$v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iij (func (param i32 i64) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) @@ -23,14 +23,13 @@ (data (i32.const 56) "\03\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 112) "\03\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00") (table $0 23 funcref) - (elem (i32.const 0) $null $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate $~lib/set/Set~iterate) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (elem (i32.const 0) $null $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse $~lib/set/Set~traverse) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) - (global $~lib/argc (mut i32) (i32.const 0)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $~lib/memory/HEAP_BASE i32 (i32.const 148)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) @@ -41,7 +40,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -140,7 +139,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -152,33 +151,30 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $~lib/set/Set~iterate (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc - local.get $0 - i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 - local.get $1 - call_indirect (type $FUNCSIG$vi) - ) - (func $~lib/string/String~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - ) - (func $~lib/collector/dummy/__ref_register (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/dummy/__ref_mark (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load + call $~lib/collector/dummy/__ref_mark + local.get $0 + i32.load offset=8 + local.set $1 + local.get $1 + call $~lib/collector/dummy/__ref_mark + ) + (func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + ) + (func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -187,24 +183,24 @@ if i32.const 0 i32.const 24 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 24 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -216,7 +212,7 @@ call $~lib/collector/dummy/__ref_register local.get $0 ) - (func $~lib/memory/memory.fill (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -473,19 +469,19 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 72 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -500,13 +496,13 @@ i32.const 4 call $~lib/runtime/runtime.register ) - (func $~lib/collector/dummy/__ref_link (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/set/Set#clear (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -575,7 +571,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -609,14 +605,14 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash8 (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash8 (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const -2128831035 local.get $0 i32.xor i32.const 16777619 i32.mul ) - (func $~lib/set/Set#find (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -671,7 +667,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -690,7 +686,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -860,7 +856,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -962,11 +958,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1043,7 +1039,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 23 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 24 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -1326,24 +1322,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1412,7 +1402,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -1446,7 +1436,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -1499,7 +1489,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -1516,7 +1506,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1686,7 +1676,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1786,11 +1776,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1865,7 +1855,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 33 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 34 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -2148,24 +2138,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2234,7 +2218,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -2268,7 +2252,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -2290,7 +2274,7 @@ local.set $1 local.get $1 ) - (func $~lib/set/Set#find (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2345,7 +2329,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -2364,7 +2348,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2534,7 +2518,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2636,11 +2620,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2717,7 +2701,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 44 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 45 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -3000,24 +2984,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 47 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3086,7 +3064,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -3120,7 +3098,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -3173,7 +3151,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -3190,7 +3168,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3360,7 +3338,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3460,11 +3438,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3539,7 +3517,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 54 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 55 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -3822,24 +3800,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 57 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3908,7 +3880,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -3942,7 +3914,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -3984,7 +3956,7 @@ local.set $1 local.get $1 ) - (func $~lib/set/Set#find (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4035,7 +4007,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -4050,7 +4022,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 61 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4220,7 +4192,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4318,11 +4290,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4395,7 +4367,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 65 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 66 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4678,24 +4650,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 66 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 68 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4764,7 +4730,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -4798,7 +4764,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4849,7 +4815,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -4864,7 +4830,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5034,7 +5000,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 73 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5132,11 +5098,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5209,7 +5175,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 75 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 76 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5492,24 +5458,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 76 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5578,7 +5538,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -5612,7 +5572,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 79 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 80 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5700,7 +5660,7 @@ local.set $3 local.get $3 ) - (func $~lib/set/Set#find (; 80 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 81 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -5751,7 +5711,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 81 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 82 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -5766,7 +5726,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5937,7 +5897,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 83 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 84 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6036,11 +5996,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 84 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 85 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#delete (; 86 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6114,7 +6074,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 86 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 87 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -6397,24 +6357,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 87 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6483,7 +6437,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 89 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 90 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -6517,7 +6471,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 90 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 91 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -6568,7 +6522,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 91 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 92 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -6583,7 +6537,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6754,7 +6708,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 93 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 94 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6853,11 +6807,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 95 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#delete (; 96 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -6931,7 +6885,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 96 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 97 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -7214,24 +7168,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 97 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 98 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 98 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 99 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7300,7 +7248,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 99 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -7334,7 +7282,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 100 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 101 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -7385,7 +7333,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 101 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#has (; 102 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) local.get $0 local.get $1 @@ -7401,7 +7349,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 102 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 103 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7573,7 +7521,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 103 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $~lib/set/Set#add (; 104 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -7673,11 +7621,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 104 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 105 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 105 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#delete (; 106 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -7752,7 +7700,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 106 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 107 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -8035,24 +7983,18 @@ unreachable end ) - (func $~lib/set/Set~iterate (; 107 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/set/Set~traverse (; 108 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=8 - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $2 + local.set $1 local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/set/Set#clear (; 108 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 109 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8121,7 +8063,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 109 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 110 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -8155,7 +8097,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 110 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 111 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -8206,7 +8148,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 111 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#has (; 112 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) local.get $0 local.get $1 @@ -8222,7 +8164,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 112 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 113 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8394,7 +8336,7 @@ i32.load offset=20 i32.store offset=16 ) - (func $~lib/set/Set#add (; 113 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) + (func $~lib/set/Set#add (; 114 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) (local $2 f64) (local $3 i32) (local $4 i32) @@ -8494,11 +8436,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 115 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#delete (; 116 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) (local $4 i32) @@ -8573,7 +8515,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 116 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 117 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -8856,7 +8798,7 @@ unreachable end ) - (func $start:std/set (; 117 ;) (type $FUNCSIG$v) + (func $start:std/set (; 118 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -8878,9 +8820,9 @@ call $std/set/testNumeric call $std/set/testNumeric ) - (func $start (; 118 ;) (type $FUNCSIG$v) + (func $start (; 119 ;) (type $FUNCSIG$v) call $start:std/set ) - (func $null (; 119 ;) (type $FUNCSIG$v) + (func $null (; 120 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 11bd2e0f..58a5952a 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -39,7 +39,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -1437,7 +1437,7 @@ if i32.const 0 i32.const 280 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -1480,8 +1480,8 @@ if i32.const 0 i32.const 240 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -1541,7 +1541,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -1585,7 +1585,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -1629,7 +1629,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 5752f5a7..40583f86 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -30,11 +30,11 @@ (global $std/static-array/I i32 (i32.const 80)) (global $std/static-array/f i32 (i32.const 120)) (global $std/static-array/F i32 (i32.const 168)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/memory/HEAP_BASE i32 (i32.const 312)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -62,7 +62,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -75,7 +75,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -1870,7 +1870,7 @@ (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -1901,7 +1901,7 @@ i32.load i32.store local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -1918,7 +1918,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -1928,7 +1928,7 @@ if i32.const 0 i32.const 280 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -1972,15 +1972,15 @@ i32.gt_u if local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 240 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -2070,7 +2070,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2138,7 +2138,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -2206,7 +2206,7 @@ if i32.const 0 i32.const 240 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string-utf8.optimized.wat b/tests/compiler/std/string-utf8.optimized.wat index b34cfd00..b9a764de 100644 --- a/tests/compiler/std/string-utf8.optimized.wat +++ b/tests/compiler/std/string-utf8.optimized.wat @@ -1464,7 +1464,7 @@ if i32.const 0 i32.const 136 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -1479,7 +1479,7 @@ if i32.const 0 i32.const 136 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -1551,7 +1551,7 @@ if i32.const 0 i32.const 96 - i32.const 448 + i32.const 449 i32.const 8 call $~lib/env/abort unreachable @@ -1598,7 +1598,7 @@ if i32.const 0 i32.const 96 - i32.const 452 + i32.const 453 i32.const 8 call $~lib/env/abort unreachable @@ -1677,7 +1677,7 @@ if i32.const 0 i32.const 96 - i32.const 464 + i32.const 465 i32.const 8 call $~lib/env/abort unreachable @@ -1732,7 +1732,7 @@ if i32.const 0 i32.const 96 - i32.const 473 + i32.const 474 i32.const 4 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index 8131ede6..de0b0327 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -20,12 +20,12 @@ (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/string-utf8/str (mut i32) (i32.const 16)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $std/string-utf8/len (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/string-utf8/ptr (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/memory/HEAP_BASE i32 (i32.const 228)) (export "memory" (memory $0)) @@ -33,7 +33,7 @@ (start $start) (func $~lib/string/String#get:length (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 @@ -457,7 +457,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -472,13 +472,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/util/memory/memcpy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -1929,24 +1929,24 @@ if i32.const 0 i32.const 136 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 136 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -2033,7 +2033,7 @@ if i32.const 0 i32.const 96 - i32.const 448 + i32.const 449 i32.const 8 call $~lib/env/abort unreachable @@ -2087,7 +2087,7 @@ if i32.const 0 i32.const 96 - i32.const 452 + i32.const 453 i32.const 8 call $~lib/env/abort unreachable @@ -2182,7 +2182,7 @@ if i32.const 0 i32.const 96 - i32.const 464 + i32.const 465 i32.const 8 call $~lib/env/abort unreachable @@ -2245,7 +2245,7 @@ if i32.const 0 i32.const 96 - i32.const 473 + i32.const 474 i32.const 4 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 3d95e96a..94219996 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1,6 +1,5 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -15,6 +14,7 @@ (type $FUNCSIG$v (func)) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\01\00\00\00 ") @@ -326,7 +326,7 @@ (data (i32.const 6696) "\01\00\00\00\16") (data (i32.const 6712) "0\00.\000\000\000\000\003\005\006\008\009") (table $0 11 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/string/String~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/string/String~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $std/string/str (mut i32) (i32.const 24)) (global $std/string/nullStr (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -335,7 +335,6 @@ (global $std/string/a (mut i32) (i32.const 0)) (global $std/string/b (mut i32) (i32.const 0)) (global $std/string/sa (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) (global $~lib/util/number/_exp (mut i32) (i32.const 0)) @@ -348,7 +347,7 @@ (export "getString" (func $std/string/getString)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -448,7 +447,7 @@ if i32.const 0 i32.const 120 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -463,7 +462,7 @@ if i32.const 0 i32.const 120 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -579,7 +578,7 @@ if i32.const 0 i32.const 216 - i32.const 25 + i32.const 26 i32.const 4 call $~lib/env/abort unreachable @@ -634,7 +633,7 @@ if i32.const 0 i32.const 216 - i32.const 165 + i32.const 166 i32.const 4 call $~lib/env/abort unreachable @@ -682,7 +681,7 @@ if i32.const 0 i32.const 216 - i32.const 78 + i32.const 79 i32.const 4 call $~lib/env/abort unreachable @@ -730,7 +729,7 @@ if i32.const 0 i32.const 216 - i32.const 134 + i32.const 135 i32.const 4 call $~lib/env/abort unreachable @@ -1881,7 +1880,7 @@ if i32.const 0 i32.const 216 - i32.const 282 + i32.const 283 i32.const 4 call $~lib/env/abort unreachable @@ -1976,7 +1975,7 @@ if i32.const 0 i32.const 216 - i32.const 303 + i32.const 304 i32.const 4 call $~lib/env/abort unreachable @@ -2072,7 +2071,7 @@ if i32.const 0 i32.const 216 - i32.const 150 + i32.const 151 i32.const 4 call $~lib/env/abort unreachable @@ -2494,7 +2493,7 @@ if i32.const 0 i32.const 216 - i32.const 570 + i32.const 571 i32.const 10 call $~lib/env/abort unreachable @@ -2766,7 +2765,7 @@ if i32.const 0 i32.const 216 - i32.const 324 + i32.const 325 i32.const 4 call $~lib/env/abort unreachable @@ -2796,7 +2795,7 @@ if i32.const 0 i32.const 216 - i32.const 329 + i32.const 330 i32.const 6 call $~lib/env/abort unreachable @@ -2916,39 +2915,30 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String>~iterate (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array<~lib/string/String>~traverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 i32.add local.set $0 loop $continue|0 - local.get $2 + local.get $1 local.get $0 i32.lt_u if - local.get $2 - i32.load - local.set $3 - i32.const 1 - global.set $~lib/argc - local.get $3 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + i32.load + drop + local.get $1 i32.const 4 i32.add - local.set $2 + local.set $1 br $continue|0 end end @@ -3276,7 +3266,7 @@ if i32.const 0 i32.const 120 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -3317,8 +3307,8 @@ if i32.const 0 i32.const 1912 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -3394,7 +3384,7 @@ if i32.const 0 i32.const 216 - i32.const 351 + i32.const 352 i32.const 4 call $~lib/env/abort unreachable @@ -3639,7 +3629,7 @@ if i32.const 0 i32.const 1912 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -3653,7 +3643,7 @@ if i32.const 0 i32.const 1912 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -3720,13 +3710,10 @@ end end ) - (func $~lib/array/Array~iterate (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + drop ) (func $~lib/util/number/utoa32_lut (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -5132,7 +5119,7 @@ if i32.const 0 i32.const 216 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -5226,7 +5213,7 @@ if i32.const 0 i32.const 120 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable @@ -5240,7 +5227,7 @@ if i32.const 0 i32.const 120 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 1ad6323a..34a1007a 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -1,6 +1,5 @@ (module (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -10,6 +9,7 @@ (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$di (func (param i32) (result f64))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 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))) @@ -176,13 +176,13 @@ (data (i32.const 6664) "\01\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00-\006\004\00") (data (i32.const 6696) "\01\00\00\00\16\00\00\00\00\00\00\00\00\00\00\000\00.\000\000\000\000\003\005\006\008\009\00") (table $0 11 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse) (global $std/string/str (mut i32) (i32.const 24)) (global $std/string/nullStr (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $~lib/string/String.MAX_LENGTH i32 (i32.const 536870904)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) @@ -190,8 +190,7 @@ (global $std/string/a (mut i32) (i32.const 0)) (global $std/string/b (mut i32) (i32.const 0)) (global $std/string/sa (mut i32) (i32.const 0)) - (global $~lib/argc (mut i32) (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) @@ -212,12 +211,12 @@ (export "getString" (func $std/string/getString)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/string/String#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 @@ -243,7 +242,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -342,7 +341,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -354,7 +353,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -369,24 +368,24 @@ if i32.const 0 i32.const 120 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 120 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -519,7 +518,7 @@ if i32.const 0 i32.const 216 - i32.const 25 + i32.const 26 i32.const 4 call $~lib/env/abort unreachable @@ -584,7 +583,7 @@ if i32.const 0 i32.const 216 - i32.const 165 + i32.const 166 i32.const 4 call $~lib/env/abort unreachable @@ -650,7 +649,7 @@ if i32.const 0 i32.const 216 - i32.const 78 + i32.const 79 i32.const 4 call $~lib/env/abort unreachable @@ -714,7 +713,7 @@ if i32.const 0 i32.const 216 - i32.const 134 + i32.const 135 i32.const 4 call $~lib/env/abort unreachable @@ -2275,7 +2274,7 @@ if i32.const 0 i32.const 216 - i32.const 282 + i32.const 283 i32.const 4 call $~lib/env/abort unreachable @@ -2376,7 +2375,7 @@ if i32.const 0 i32.const 216 - i32.const 303 + i32.const 304 i32.const 4 call $~lib/env/abort unreachable @@ -2478,7 +2477,7 @@ if i32.const 0 i32.const 216 - i32.const 150 + i32.const 151 i32.const 4 call $~lib/env/abort unreachable @@ -2992,7 +2991,7 @@ if i32.const 0 i32.const 216 - i32.const 570 + i32.const 571 i32.const 10 call $~lib/env/abort unreachable @@ -3273,7 +3272,7 @@ if i32.const 0 i32.const 216 - i32.const 324 + i32.const 325 i32.const 4 call $~lib/env/abort unreachable @@ -3301,7 +3300,7 @@ if i32.const 0 i32.const 216 - i32.const 329 + i32.const 330 i32.const 6 call $~lib/env/abort unreachable @@ -3435,62 +3434,58 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/array/Array<~lib/string/String>~iterate (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_mark (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/array/Array<~lib/string/String>~traverse (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - i32.const 1 - global.set $~lib/argc local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark local.get $0 i32.load offset=4 - local.set $2 - local.get $2 + local.set $1 + local.get $1 local.get $0 i32.load offset=8 i32.add - local.set $3 + local.set $2 block $break|0 loop $continue|0 + local.get $1 local.get $2 - local.get $3 i32.lt_u if block - local.get $2 + local.get $1 i32.load - local.set $4 - i32.const 1 - global.set $~lib/argc - local.get $4 + local.set $3 + local.get $3 + call $~lib/collector/dummy/__ref_mark + local.get $3 + call $~lib/string/String~traverse local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $4 - local.get $1 - call $~lib/string/String~iterate - local.get $2 i32.const 4 i32.add - local.set $2 + local.set $1 end br $continue|0 end end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) - (func $~lib/collector/dummy/__ref_link (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/runtime/runtime.makeArray (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 40 ;) (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) @@ -3554,7 +3549,7 @@ end local.get $4 ) - (func $~lib/memory/memory.fill (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3811,21 +3806,21 @@ end end ) - (func $~lib/allocator/arena/__mem_free (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/arena/__mem_free (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/memory/memory.free (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 43 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/arena/__mem_free ) - (func $~lib/runtime/runtime.reallocate (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.reallocate (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 @@ -3862,7 +3857,7 @@ i32.const 0 i32.store offset=12 local.get $5 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add local.set $6 local.get $6 @@ -3879,7 +3874,7 @@ call $~lib/memory/memory.fill local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq if local.get $0 @@ -3889,7 +3884,7 @@ if i32.const 0 i32.const 120 - i32.const 107 + i32.const 64 i32.const 10 call $~lib/env/abort unreachable @@ -3922,7 +3917,7 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 45 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3937,15 +3932,15 @@ i32.gt_u if local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 1912 - i32.const 13 - i32.const 72 + i32.const 14 + i32.const 64 call $~lib/env/abort unreachable end @@ -3996,7 +3991,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4046,7 +4041,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 46 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4079,7 +4074,7 @@ call $~lib/collector/dummy/__ref_link end ) - (func $~lib/string/String#split (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4098,7 +4093,7 @@ if i32.const 0 i32.const 216 - i32.const 351 + i32.const 352 i32.const 4 call $~lib/env/abort unreachable @@ -4386,11 +4381,11 @@ end local.get $9 ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4399,7 +4394,7 @@ i32.add i32.load ) - (func $~lib/array/Array<~lib/string/String>#__get (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -4407,7 +4402,7 @@ if i32.const 0 i32.const 1912 - i32.const 95 + i32.const 96 i32.const 45 call $~lib/env/abort unreachable @@ -4421,7 +4416,7 @@ if i32.const 0 i32.const 1912 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -4430,7 +4425,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $~lib/util/number/decimalCount32 (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -4499,15 +4494,12 @@ unreachable unreachable ) - (func $~lib/array/Array~iterate (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 53 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/number/utoa32_lut (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4650,7 +4642,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4706,7 +4698,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/utoa32 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4742,7 +4734,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/decimalCount64 (; 56 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 57 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -4811,7 +4803,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 57 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 58 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -4939,7 +4931,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 58 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 59 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5007,7 +4999,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/util/number/itoa64 (; 59 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 60 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5097,27 +5089,24 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/builtins/isFinite (; 60 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 61 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/builtins/isNaN (; 61 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 62 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/array/Array~iterate (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 63 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#__unchecked_get (; 63 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 64 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -5126,15 +5115,12 @@ i32.add i64.load ) - (func $~lib/array/Array~iterate (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#__unchecked_get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5143,7 +5129,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 66 ;) (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 (; 67 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -5714,7 +5700,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6047,7 +6033,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 68 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 69 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -6485,7 +6471,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6501,7 +6487,7 @@ if i32.const 0 i32.const 216 - i32.const 190 + i32.const 191 i32.const 4 call $~lib/env/abort unreachable @@ -6603,7 +6589,7 @@ i32.const 1 call $~lib/runtime/runtime.register ) - (func $~lib/runtime/runtime.discard (; 70 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.discard (; 71 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -6612,24 +6598,24 @@ if i32.const 0 i32.const 120 - i32.const 132 + i32.const 89 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $1 local.get $1 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 120 - i32.const 134 + i32.const 91 i32.const 6 call $~lib/env/abort unreachable @@ -6637,7 +6623,7 @@ local.get $1 call $~lib/memory/memory.free ) - (func $~lib/util/number/dtoa (; 71 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 72 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6684,7 +6670,7 @@ call $~lib/runtime/runtime.discard local.get $3 ) - (func $start:std/string (; 72 ;) (type $FUNCSIG$v) + (func $start:std/string (; 73 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10076,12 +10062,12 @@ unreachable end ) - (func $std/string/getString (; 73 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 74 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str ) - (func $start (; 74 ;) (type $FUNCSIG$v) + (func $start (; 75 ;) (type $FUNCSIG$v) call $start:std/string ) - (func $null (; 75 ;) (type $FUNCSIG$v) + (func $null (; 76 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 15411804..980cd5df 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -144,7 +144,7 @@ if i32.const 0 i32.const 72 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -159,7 +159,7 @@ if i32.const 0 i32.const 72 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -388,8 +388,8 @@ if i32.const 0 i32.const 112 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index d481dfbd..68a2928e 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -39,12 +39,12 @@ (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) (global $std/symbol/sym4 (mut i32) (i32.const 0)) @@ -83,7 +83,7 @@ i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -182,13 +182,13 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 i32.store offset=4 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/runtime/runtime.register (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -200,24 +200,24 @@ if i32.const 0 i32.const 72 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 72 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -487,13 +487,13 @@ (func $~lib/arraybuffer/ArrayBuffer#constructor (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 112 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -630,7 +630,7 @@ ) (func $~lib/string/String#get:length (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 i32.const 1 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 268c5b72..acb6a693 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -1,11 +1,11 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viid (func (param i32 i32 f64))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$dii (func (param i32 i32) (result f64))) @@ -93,7 +93,7 @@ (data (i32.const 1336) "\01\00\00\00V") (data (i32.const 1352) "T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") (table $0 130 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/arraybuffer/ArrayBufferView~traverse $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/typedarray/arr (mut i32) (i32.const 0)) @@ -117,7 +117,7 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) (func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -442,7 +442,7 @@ if i32.const 0 i32.const 136 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable @@ -457,7 +457,7 @@ if i32.const 0 i32.const 136 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -475,8 +475,8 @@ if i32.const 0 i32.const 80 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -490,15 +490,10 @@ i32.const 2 call $~lib/runtime/runtime.register ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.tee $0 - if - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$vi) - end + drop ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 @@ -509,8 +504,8 @@ if i32.const 0 i32.const 80 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -1956,15 +1951,7 @@ call $~lib/memory/memory.fill end ) - (func $~lib/array/Array~iterate (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc - local.get $0 - i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) - ) - (func $~lib/util/memory/memcpy (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2811,7 +2798,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 37 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 36 ;) (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 @@ -3005,7 +2992,7 @@ end end ) - (func $~lib/runtime/runtime.makeArray (; 38 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) i32.const 16 @@ -3046,7 +3033,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int8Array#__get (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3065,7 +3052,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__get (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3073,7 +3060,7 @@ if i32.const 0 i32.const 264 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -3084,7 +3071,7 @@ i32.add i32.load8_s ) - (func $std/typedarray/isInt8ArrayEqual (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3126,7 +3113,7 @@ end i32.const 1 ) - (func $~lib/typedarray/Int8Array#subarray (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -3212,7 +3199,7 @@ i32.const 4 call $~lib/runtime/runtime.register ) - (func $~lib/typedarray/Int32Array#fill (; 43 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/typedarray/Int32Array#fill (; 42 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) local.get $1 @@ -3289,7 +3276,7 @@ end end ) - (func $~lib/array/Array#__get (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3299,7 +3286,7 @@ if i32.const 0 i32.const 264 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -3312,7 +3299,7 @@ i32.add i32.load ) - (func $std/typedarray/isInt32ArrayEqual (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt32ArrayEqual (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -3358,12 +3345,12 @@ end i32.const 1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 46 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 45 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduce (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3400,7 +3387,7 @@ end local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 48 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 47 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -3431,7 +3418,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#__set (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__set (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3451,7 +3438,7 @@ local.get $2 i32.store8 ) - (func $~lib/typedarray/Uint8Array#reduce (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduce (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3488,7 +3475,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 51 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 50 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -3520,7 +3507,7 @@ unreachable end ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 52 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 51 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -3552,7 +3539,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#__set (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#__set (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3576,7 +3563,7 @@ local.get $2 i32.store16 ) - (func $~lib/typedarray/Int16Array#reduce (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduce (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3617,7 +3604,7 @@ end local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 55 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 54 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -3648,7 +3635,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#__set (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#__set (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3672,7 +3659,7 @@ local.get $2 i32.store16 ) - (func $~lib/typedarray/Uint16Array#reduce (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduce (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3713,7 +3700,7 @@ end local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 58 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 57 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -3744,7 +3731,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reduce (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3785,7 +3772,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 60 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 59 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -3815,7 +3802,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#__set (; 61 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint32Array#__set (; 60 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3839,7 +3826,7 @@ local.get $2 i32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 62 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 61 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -3869,7 +3856,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#__set (; 63 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Int64Array#__set (; 62 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -3893,12 +3880,12 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 64 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 63 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduce (; 65 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 64 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i32) (local $3 i64) (local $4 i32) @@ -3939,7 +3926,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 66 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 65 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -3969,7 +3956,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#__set (; 67 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Uint64Array#__set (; 66 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -3993,7 +3980,7 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 68 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 67 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -4023,7 +4010,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#__set (; 69 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + (func $~lib/typedarray/Float32Array#__set (; 68 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 i32.load offset=8 @@ -4047,12 +4034,12 @@ local.get $2 f32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 70 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 69 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduce (; 71 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 70 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -4093,7 +4080,7 @@ end local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 72 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 71 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -4122,12 +4109,12 @@ unreachable end ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 73 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 72 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduce (; 74 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 73 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4168,7 +4155,7 @@ end local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 75 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 74 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -4197,7 +4184,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reduceRight (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 75 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4235,7 +4222,7 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 77 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 76 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -4266,7 +4253,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4304,7 +4291,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 79 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 78 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -4336,7 +4323,7 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 80 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 79 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -4368,7 +4355,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reduceRight (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4410,7 +4397,7 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 82 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 81 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -4441,7 +4428,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 82 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4483,7 +4470,7 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 84 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 83 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -4514,7 +4501,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reduceRight (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4556,7 +4543,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 86 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 85 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -4586,7 +4573,7 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 87 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 86 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -4616,7 +4603,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reduceRight (; 88 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 87 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i32) (local $3 i64) (local $4 i32) @@ -4658,7 +4645,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 89 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 88 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -4688,7 +4675,7 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 90 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 89 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -4718,7 +4705,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reduceRight (; 91 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 90 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -4760,7 +4747,7 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 92 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 91 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -4789,7 +4776,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reduceRight (; 93 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 92 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4831,7 +4818,7 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 94 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 93 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -4860,12 +4847,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 95 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int8Array#map (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4911,7 +4898,7 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 97 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 96 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -4969,7 +4956,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#map (; 98 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5015,7 +5002,7 @@ end local.get $2 ) - (func $~lib/typedarray/Uint8Array#__get (; 99 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5034,7 +5021,7 @@ i32.add i32.load8_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 100 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 99 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -5092,7 +5079,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 101 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5138,7 +5125,7 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 102 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 101 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -5196,7 +5183,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#map (; 103 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5251,7 +5238,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int16Array#__get (; 104 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#__get (; 103 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5274,7 +5261,7 @@ i32.add i32.load16_s ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 105 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 104 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -5332,7 +5319,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#map (; 106 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 105 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5387,7 +5374,7 @@ end local.get $2 ) - (func $~lib/typedarray/Uint16Array#__get (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__get (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5410,7 +5397,7 @@ i32.add i32.load16_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 108 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 107 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -5468,7 +5455,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#map (; 109 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 108 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5523,7 +5510,7 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 110 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 109 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -5581,7 +5568,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#map (; 111 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 110 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5636,7 +5623,7 @@ end local.get $2 ) - (func $~lib/typedarray/Uint32Array#__get (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__get (; 111 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5659,7 +5646,7 @@ i32.add i32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 113 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 112 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -5717,12 +5704,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 114 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 113 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Int64Array#map (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5777,7 +5764,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int64Array#__get (; 116 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#__get (; 115 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -5800,7 +5787,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 117 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 116 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -5858,7 +5845,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#map (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5913,7 +5900,7 @@ end local.get $2 ) - (func $~lib/typedarray/Uint64Array#__get (; 119 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Uint64Array#__get (; 118 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -5936,7 +5923,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 120 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 119 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -5994,12 +5981,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 121 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 120 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 local.get $0 f32.mul ) - (func $~lib/typedarray/Float32Array#map (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 121 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6054,7 +6041,7 @@ end local.get $2 ) - (func $~lib/typedarray/Float32Array#__get (; 123 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Float32Array#__get (; 122 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -6077,7 +6064,7 @@ i32.add f32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 124 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 123 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -6135,12 +6122,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 125 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 124 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 local.get $0 f64.mul ) - (func $~lib/typedarray/Float64Array#map (; 126 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 125 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6195,7 +6182,7 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 127 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 126 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -6253,14 +6240,14 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 127 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#some (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6299,13 +6286,13 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 130 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 129 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 131 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 130 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -6345,7 +6332,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#some (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6384,7 +6371,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 133 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 132 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -6424,7 +6411,7 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 134 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 133 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -6464,14 +6451,14 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 134 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#some (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6514,13 +6501,13 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 136 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 138 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 137 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -6560,7 +6547,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#some (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6603,7 +6590,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 140 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 139 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -6643,12 +6630,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 140 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#some (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6691,11 +6678,11 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 143 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 142 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 144 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 143 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -6735,7 +6722,7 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 145 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 144 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -6775,12 +6762,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 146 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 145 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#some (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6823,12 +6810,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 148 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 147 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 149 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 148 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -6868,7 +6855,7 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 150 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 149 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -6908,12 +6895,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 151 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 150 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#some (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6956,12 +6943,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 153 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 152 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 154 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 153 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -7001,12 +6988,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 155 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 154 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#some (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7049,12 +7036,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 157 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 156 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 0 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 158 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 157 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -7094,7 +7081,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#findIndex (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7136,14 +7123,14 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 160 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 159 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 161 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 160 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -7186,7 +7173,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#findIndex (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7228,7 +7215,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 163 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 162 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -7271,7 +7258,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 164 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 163 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -7314,7 +7301,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#findIndex (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7360,14 +7347,14 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 166 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 167 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 166 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -7410,7 +7397,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#findIndex (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7456,7 +7443,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 169 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 168 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -7499,7 +7486,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#findIndex (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7545,12 +7532,12 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 171 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 170 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 172 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 171 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -7593,7 +7580,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 173 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 172 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -7636,7 +7623,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#findIndex (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7682,12 +7669,12 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 175 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 174 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 176 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 175 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -7730,7 +7717,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 177 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 176 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -7773,7 +7760,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#findIndex (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7819,12 +7806,12 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 179 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 178 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 180 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 179 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -7867,7 +7854,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#findIndex (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7913,12 +7900,12 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 182 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 181 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 183 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 182 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -7961,7 +7948,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 184 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 183 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -7971,7 +7958,7 @@ i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int8Array#every (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8011,7 +7998,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 186 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 185 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor @@ -8051,13 +8038,13 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 187 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 186 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.and i32.eqz ) - (func $~lib/typedarray/Uint8Array#every (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8097,7 +8084,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 189 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 188 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8Array#constructor @@ -8137,7 +8124,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 190 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 189 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -8177,7 +8164,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 191 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 190 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -8187,7 +8174,7 @@ i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int16Array#every (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8231,7 +8218,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 193 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 192 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor @@ -8271,7 +8258,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#every (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8315,7 +8302,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 195 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 194 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor @@ -8355,13 +8342,13 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 195 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int32Array#every (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8405,7 +8392,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 198 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 197 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor @@ -8445,7 +8432,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 199 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 198 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor @@ -8485,14 +8472,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 200 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 199 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $~lib/typedarray/Int64Array#every (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8536,7 +8523,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 202 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 201 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor @@ -8576,14 +8563,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 203 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 202 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 204 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 203 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor @@ -8623,7 +8610,7 @@ unreachable end ) - (func $~lib/math/NativeMathf.mod (; 205 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 204 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8774,13 +8761,13 @@ local.get $0 f32.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 206 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 205 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $~lib/typedarray/Float32Array#every (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8824,7 +8811,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 208 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 207 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor @@ -8864,7 +8851,7 @@ unreachable end ) - (func $~lib/math/NativeMath.mod (; 209 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 208 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -9023,13 +9010,13 @@ local.get $0 f64.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 210 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 209 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $~lib/typedarray/Float64Array#every (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9073,7 +9060,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 212 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 211 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor @@ -9113,7 +9100,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 213 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 212 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.const 255 i32.and @@ -9158,7 +9145,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int8Array#forEach (; 214 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int8Array#forEach (; 213 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9191,7 +9178,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 215 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 214 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9243,7 +9230,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#forEach (; 216 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 215 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9276,7 +9263,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 217 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 216 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9323,7 +9310,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 218 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 217 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9370,7 +9357,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 219 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 218 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.const 65535 i32.and @@ -9415,7 +9402,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int16Array#forEach (; 220 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int16Array#forEach (; 219 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9452,7 +9439,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 221 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 220 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9504,7 +9491,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#forEach (; 222 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 221 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9541,7 +9528,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 223 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 222 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9587,7 +9574,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 224 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 223 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/typedarray/forEachValues local.get $1 call $~lib/array/Array#__get @@ -9628,7 +9615,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int32Array#forEach (; 225 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 224 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9665,7 +9652,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 226 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 225 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9706,7 +9693,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 227 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 226 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9747,7 +9734,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 228 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 227 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) local.get $0 global.get $std/typedarray/forEachValues local.get $1 @@ -9789,7 +9776,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int64Array#forEach (; 229 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 228 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9826,7 +9813,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 230 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 229 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9870,7 +9857,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 231 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 230 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -9914,7 +9901,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 232 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 231 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) local.get $0 global.get $std/typedarray/forEachValues local.get $1 @@ -9956,7 +9943,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float32Array#forEach (; 233 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float32Array#forEach (; 232 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9993,7 +9980,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 234 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 233 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -10036,7 +10023,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 235 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 234 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) local.get $0 global.get $std/typedarray/forEachValues local.get $1 @@ -10078,7 +10065,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float64Array#forEach (; 236 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float64Array#forEach (; 235 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10115,7 +10102,7 @@ end end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 237 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 236 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -10158,7 +10145,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reverse (; 238 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 237 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10206,7 +10193,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 239 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 238 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10351,7 +10338,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reverse (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 239 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10399,7 +10386,7 @@ end local.get $0 ) - (func $~lib/typedarray/Uint8Array#subarray (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10454,7 +10441,7 @@ i32.const 5 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 242 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 241 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10591,7 +10578,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 243 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 242 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10646,7 +10633,7 @@ i32.const 6 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 244 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 243 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10783,7 +10770,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reverse (; 245 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 244 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10837,7 +10824,7 @@ end local.get $0 ) - (func $~lib/typedarray/Int16Array#subarray (; 246 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 245 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10898,7 +10885,7 @@ i32.const 7 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 247 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 246 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11041,7 +11028,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reverse (; 248 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 247 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11095,7 +11082,7 @@ end local.get $0 ) - (func $~lib/typedarray/Uint16Array#subarray (; 249 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 248 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11156,7 +11143,7 @@ i32.const 8 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 250 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 249 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11293,7 +11280,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reverse (; 251 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 250 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11347,7 +11334,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 252 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 251 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11480,7 +11467,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#subarray (; 253 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 252 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11541,7 +11528,7 @@ i32.const 10 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 254 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 253 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11672,7 +11659,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reverse (; 255 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 254 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11726,7 +11713,7 @@ end local.get $0 ) - (func $~lib/typedarray/Int64Array#subarray (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 255 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11787,7 +11774,7 @@ i32.const 11 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 257 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 256 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11921,7 +11908,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#subarray (; 258 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 257 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11982,7 +11969,7 @@ i32.const 12 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 259 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 258 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12116,7 +12103,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reverse (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12170,7 +12157,7 @@ end local.get $0 ) - (func $~lib/typedarray/Float32Array#subarray (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12231,7 +12218,7 @@ i32.const 13 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 262 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 261 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12365,7 +12352,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reverse (; 263 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 262 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12419,7 +12406,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 264 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 263 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12555,7 +12542,7 @@ unreachable end ) - (func $start:std/typedarray (; 265 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 264 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 1440 @@ -13635,10 +13622,10 @@ call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> ) - (func $start (; 266 ;) (type $FUNCSIG$v) + (func $start (; 265 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $null (; 267 ;) (type $FUNCSIG$v) + (func $null (; 266 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/typedarray.ts b/tests/compiler/std/typedarray.ts index 7283275e..7e37eb4d 100644 --- a/tests/compiler/std/typedarray.ts +++ b/tests/compiler/std/typedarray.ts @@ -193,9 +193,9 @@ assert(sub32.byteLength == 3 * sizeof()); assert(isInt32ArrayEqual(sub32, [0, 0, 0])); assert(isInt32ArrayEqual(arr32, [1, 0, 0, 0, 2])); -import { runtime } from "runtime"; +import { MAX_BYTELENGTH } from "util/runtime"; -const MAX_F64LENGTH = runtime.MAX_BYTELENGTH >> alignof(); +const MAX_F64LENGTH = MAX_BYTELENGTH >> alignof(); new Float64Array(MAX_F64LENGTH); // 1GB // new Float64Array(MAX_F64 + 1); // throws diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index e81c8f39..f6831f33 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -1,11 +1,11 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) - (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$viid (func (param i32 i32 f64))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$dii (func (param i32 i32) (result f64))) @@ -68,7 +68,7 @@ (data (i32.const 1248) "\01\00\00\00B\00\00\00\00\00\00\00\00\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") (data (i32.const 1336) "\01\00\00\00V\00\00\00\00\00\00\00\00\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") (table $0 130 funcref) - (elem (i32.const 0) $null $~lib/string/String~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/typedarray/Int8Array~iterate $~lib/typedarray/Uint8Array~iterate $~lib/typedarray/Uint8ClampedArray~iterate $~lib/typedarray/Int16Array~iterate $~lib/typedarray/Uint16Array~iterate $~lib/typedarray/Int32Array~iterate $~lib/typedarray/Uint32Array~iterate $~lib/typedarray/Int64Array~iterate $~lib/typedarray/Uint64Array~iterate $~lib/typedarray/Float32Array~iterate $~lib/typedarray/Float64Array~iterate $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $~lib/array/Array~iterate $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) + (elem (i32.const 0) $null $~lib/string/String~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/typedarray/Int8Array~traverse $~lib/typedarray/Uint8Array~traverse $~lib/typedarray/Uint8ClampedArray~traverse $~lib/typedarray/Int16Array~traverse $~lib/typedarray/Uint16Array~traverse $~lib/typedarray/Int32Array~traverse $~lib/typedarray/Uint32Array~traverse $~lib/typedarray/Int64Array~traverse $~lib/typedarray/Uint64Array~traverse $~lib/typedarray/Float32Array~traverse $~lib/typedarray/Float64Array~traverse $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $~lib/array/Array~traverse $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -80,11 +80,11 @@ (global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) (global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) (global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) - (global $~lib/runtime/HEADER_SIZE i32 (i32.const 16)) - (global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808)) + (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) + (global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) - (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) + (global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/ASC_NO_ASSERT i32 (i32.const 0)) (global $std/typedarray/arr (mut i32) (i32.const 0)) (global $std/typedarray/af64 (mut i32) (i32.const 0)) @@ -110,14 +110,14 @@ (export "table" (table $0)) (export ".capabilities" (global $~lib/capabilities)) (start $start) - (func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/runtime/runtime.adjust (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add i32.const 1 i32.sub @@ -216,7 +216,7 @@ call $~lib/memory/memory.allocate local.set $1 local.get $1 - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.store local.get $1 local.get $0 @@ -228,7 +228,7 @@ i32.const 0 i32.store offset=12 local.get $1 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.add ) (func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) @@ -488,8 +488,8 @@ end end ) - (func $~lib/arraybuffer/ArrayBuffer~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/arraybuffer/ArrayBuffer~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) ) (func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) nop @@ -503,24 +503,24 @@ if i32.const 0 i32.const 136 - i32.const 145 + i32.const 102 i32.const 6 call $~lib/env/abort unreachable end local.get $0 - global.get $~lib/runtime/HEADER_SIZE + global.get $~lib/util/runtime/HEADER_SIZE i32.sub local.set $2 local.get $2 i32.load - global.get $~lib/runtime/HEADER_MAGIC + global.get $~lib/util/runtime/HEADER_MAGIC i32.eq i32.eqz if i32.const 0 i32.const 136 - i32.const 147 + i32.const 104 i32.const 6 call $~lib/env/abort unreachable @@ -535,13 +535,13 @@ (func $~lib/arraybuffer/ArrayBuffer#constructor (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH i32.gt_u if i32.const 0 i32.const 80 - i32.const 53 - i32.const 51 + i32.const 54 + i32.const 43 call $~lib/env/abort unreachable end @@ -556,41 +556,42 @@ i32.const 2 call $~lib/runtime/runtime.register ) - (func $~lib/arraybuffer/ArrayBufferView~iterate (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/collector/dummy/__ref_mark (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/arraybuffer/ArrayBufferView~traverse (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 i32.load - local.tee $2 + local.tee $1 if - local.get $2 local.get $1 - call_indirect (type $FUNCSIG$vi) - local.get $2 + call $~lib/collector/dummy/__ref_mark local.get $1 - call $~lib/arraybuffer/ArrayBuffer~iterate + call $~lib/arraybuffer/ArrayBuffer~traverse end ) - (func $~lib/collector/dummy/__ref_link (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_link (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/collector/dummy/__ref_unlink (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/dummy/__ref_unlink (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) local.get $1 - global.get $~lib/runtime/runtime.MAX_BYTELENGTH + global.get $~lib/util/runtime/MAX_BYTELENGTH local.get $2 i32.shr_u i32.gt_u if i32.const 0 i32.const 80 - i32.const 11 - i32.const 65 + i32.const 12 + i32.const 57 call $~lib/env/abort unreachable end @@ -652,13 +653,12 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Int8Array~iterate (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array~traverse (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Int8Array#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#constructor (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -674,28 +674,27 @@ local.set $0 local.get $0 ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load i32.sub ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $~lib/typedarray/Int8Array#get:length (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#get:length (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength ) - (func $~lib/typedarray/Uint8Array~iterate (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array~traverse (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint8Array#constructor (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -711,17 +710,16 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8Array#get:length (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:length (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength ) - (func $~lib/typedarray/Uint8ClampedArray~iterate (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray~traverse (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint8ClampedArray#constructor (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#constructor (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -737,17 +735,16 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint8ClampedArray#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength ) - (func $~lib/typedarray/Int16Array~iterate (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array~traverse (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Int16Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -763,19 +760,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int16Array#get:length (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) - (func $~lib/typedarray/Uint16Array~iterate (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array~traverse (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint16Array#constructor (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -791,19 +787,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint16Array#get:length (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) - (func $~lib/typedarray/Int32Array~iterate (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array~traverse (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Int32Array#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -819,19 +814,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int32Array#get:length (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#get:length (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Uint32Array~iterate (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint32Array~traverse (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint32Array#constructor (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#constructor (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -847,19 +841,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint32Array#get:length (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#get:length (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Int64Array~iterate (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array~traverse (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Int64Array#constructor (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#constructor (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -875,19 +868,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int64Array#get:length (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#get:length (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $~lib/typedarray/Uint64Array~iterate (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint64Array~traverse (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Uint64Array#constructor (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#constructor (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -903,19 +895,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint64Array#get:length (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#get:length (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $~lib/typedarray/Float32Array~iterate (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float32Array~traverse (; 45 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Float32Array#constructor (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -931,19 +922,18 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float32Array#get:length (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Float64Array~iterate (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Float64Array~traverse (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~iterate + call $~lib/arraybuffer/ArrayBufferView~traverse ) - (func $~lib/typedarray/Float64Array#constructor (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#constructor (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -959,13 +949,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float64Array#get:length (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#get:length (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $std/typedarray/testInstantiate (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/typedarray/testInstantiate (; 51 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1473,7 +1463,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#__set (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#__set (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -1497,7 +1487,7 @@ local.get $2 i32.store ) - (func $~lib/typedarray/Int32Array#__get (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__get (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -1520,7 +1510,7 @@ i32.add i32.load ) - (func $~lib/typedarray/Int32Array#subarray (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#subarray (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1649,7 +1639,7 @@ i32.const 9 call $~lib/runtime/runtime.register ) - (func $~lib/typedarray/Float64Array#__set (; 54 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + (func $~lib/typedarray/Float64Array#__set (; 55 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=8 @@ -1673,7 +1663,7 @@ local.get $2 f64.store ) - (func $~lib/typedarray/Float64Array#subarray (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#subarray (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1802,7 +1792,7 @@ i32.const 14 call $~lib/runtime/runtime.register ) - (func $~lib/util/sort/insertionSort (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -1898,14 +1888,14 @@ unreachable end ) - (func $~lib/allocator/arena/__mem_free (; 57 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/arena/__mem_free (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/memory/memory.free (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 59 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/arena/__mem_free ) - (func $~lib/util/sort/weakHeapSort (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 60 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2205,7 +2195,7 @@ local.get $10 f64.store ) - (func $~lib/typedarray/Float64Array#sort (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2289,7 +2279,7 @@ local.get $3 end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 61 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 62 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -2322,7 +2312,7 @@ i64.lt_s i32.sub ) - (func $~lib/typedarray/Float64Array#sort|trampoline (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort|trampoline (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -2341,7 +2331,7 @@ local.get $1 call $~lib/typedarray/Float64Array#sort ) - (func $~lib/typedarray/Float64Array#__get (; 63 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/typedarray/Float64Array#__get (; 64 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -2364,7 +2354,7 @@ i32.add f64.load ) - (func $~lib/typedarray/Uint8ClampedArray#__set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 65 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -2396,7 +2386,7 @@ i32.and i32.store8 ) - (func $~lib/typedarray/Uint8ClampedArray#__get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#__get (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2415,7 +2405,7 @@ i32.add i32.load8_u ) - (func $~lib/typedarray/Int8Array#__set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#__set (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -2435,7 +2425,7 @@ local.get $2 i32.store8 ) - (func $~lib/typedarray/Int8Array#fill (; 67 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int8Array#fill (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2523,15 +2513,12 @@ end local.get $7 ) - (func $~lib/array/Array~iterate (; 68 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 69 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/util/memory/memcpy (; 69 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 70 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3732,7 +3719,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 70 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 71 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3963,7 +3950,7 @@ end end ) - (func $~lib/runtime/runtime.makeArray (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/runtime/runtime.makeArray (; 72 ;) (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) @@ -4027,11 +4014,11 @@ end local.get $4 ) - (func $~lib/array/Array#get:length (; 72 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/typedarray/Int8Array#__get (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4050,7 +4037,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__unchecked_get (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4059,7 +4046,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__get (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4069,7 +4056,7 @@ if i32.const 0 i32.const 264 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -4078,7 +4065,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/typedarray/isInt8ArrayEqual (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4126,7 +4113,7 @@ end i32.const 1 ) - (func $~lib/typedarray/Int8Array#subarray (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4255,7 +4242,7 @@ i32.const 4 call $~lib/runtime/runtime.register ) - (func $~lib/typedarray/Int32Array#fill (; 78 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int32Array#fill (; 79 ;) (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) @@ -4353,19 +4340,16 @@ end local.get $7 ) - (func $~lib/array/Array~iterate (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - i32.const 1 - global.set $~lib/argc + (func $~lib/array/Array~traverse (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load - local.get $1 - call_indirect (type $FUNCSIG$vi) + call $~lib/collector/dummy/__ref_mark ) - (func $~lib/array/Array#get:length (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4374,7 +4358,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4384,7 +4368,7 @@ if i32.const 0 i32.const 264 - i32.const 98 + i32.const 99 i32.const 61 call $~lib/env/abort unreachable @@ -4393,7 +4377,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/typedarray/isInt32ArrayEqual (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt32ArrayEqual (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4441,12 +4425,12 @@ end i32.const 1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 84 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 85 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduce (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4503,7 +4487,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 86 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 87 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4544,7 +4528,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#__set (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__set (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4564,12 +4548,12 @@ local.get $2 i32.store8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 88 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 89 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8Array#reduce (; 89 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduce (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4626,7 +4610,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 90 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 91 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4665,12 +4649,12 @@ unreachable end ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 91 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 92 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8ClampedArray#reduce (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduce (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4727,7 +4711,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 93 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 94 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4766,7 +4750,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#__set (; 94 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#__set (; 95 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4790,12 +4774,12 @@ local.get $2 i32.store16 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 95 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 96 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int16Array#reduce (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduce (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4852,7 +4836,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 97 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 98 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4893,7 +4877,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#__set (; 98 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#__set (; 99 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4917,12 +4901,12 @@ local.get $2 i32.store16 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 99 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 100 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint16Array#reduce (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduce (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4979,7 +4963,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 101 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 102 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5018,12 +5002,12 @@ unreachable end ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 102 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 103 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int32Array#reduce (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5080,7 +5064,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 104 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 105 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5117,7 +5101,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#__set (; 105 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint32Array#__set (; 106 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -5141,12 +5125,12 @@ local.get $2 i32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 106 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 107 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint32Array#reduce (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduce (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5203,7 +5187,7 @@ end local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 108 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 109 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5240,7 +5224,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#__set (; 109 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Int64Array#__set (; 110 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -5264,12 +5248,12 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 110 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 111 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduce (; 111 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 112 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -5326,7 +5310,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 112 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 113 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -5363,7 +5347,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#__set (; 113 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Uint64Array#__set (; 114 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -5387,12 +5371,12 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 114 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 115 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Uint64Array#reduce (; 115 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduce (; 116 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -5449,7 +5433,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 116 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 117 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -5486,7 +5470,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#__set (; 117 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + (func $~lib/typedarray/Float32Array#__set (; 118 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 i32.load offset=8 @@ -5510,12 +5494,12 @@ local.get $2 f32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 118 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 119 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduce (; 119 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 120 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -5572,7 +5556,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 120 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 121 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -5609,12 +5593,12 @@ unreachable end ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 121 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 122 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduce (; 122 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 123 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5671,7 +5655,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 123 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 124 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -5708,12 +5692,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 124 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 125 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduceRight (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5767,7 +5751,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 126 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 127 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5808,12 +5792,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 127 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 128 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 129 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5867,7 +5851,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 129 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 130 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5906,12 +5890,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 130 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 131 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 131 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 132 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5965,7 +5949,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 132 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 133 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6004,12 +5988,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 133 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 134 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int16Array#reduceRight (; 134 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6063,7 +6047,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 135 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 136 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6104,12 +6088,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 136 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 137 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 138 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6163,7 +6147,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 138 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 139 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6202,12 +6186,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 139 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 140 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int32Array#reduceRight (; 140 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6261,7 +6245,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 141 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 142 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6298,12 +6282,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 142 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 143 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint32Array#reduceRight (; 143 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduceRight (; 144 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6357,7 +6341,7 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 144 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 145 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6394,12 +6378,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 145 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 146 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduceRight (; 146 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 147 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -6453,7 +6437,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 147 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 148 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -6490,12 +6474,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 148 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 149 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Uint64Array#reduceRight (; 149 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduceRight (; 150 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -6549,7 +6533,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 150 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 151 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -6586,12 +6570,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 151 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 152 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduceRight (; 152 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 153 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -6645,7 +6629,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 153 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 154 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -6682,12 +6666,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 154 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 155 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduceRight (; 155 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 156 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -6741,7 +6725,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 156 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 157 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -6778,12 +6762,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 157 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int8Array#map (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6848,7 +6832,7 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 159 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 160 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6914,12 +6898,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 160 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 161 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint8Array#map (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6984,7 +6968,7 @@ end local.get $6 ) - (func $~lib/typedarray/Uint8Array#__get (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -7003,7 +6987,7 @@ i32.add i32.load8_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 163 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 164 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7069,12 +7053,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 164 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7139,7 +7123,7 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 166 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 167 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7205,12 +7189,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 168 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int16Array#map (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7275,7 +7259,7 @@ end local.get $6 ) - (func $~lib/typedarray/Int16Array#__get (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#__get (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -7298,7 +7282,7 @@ i32.add i32.load16_s ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 170 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 171 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7364,12 +7348,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 171 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 172 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint16Array#map (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7434,7 +7418,7 @@ end local.get $6 ) - (func $~lib/typedarray/Uint16Array#__get (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__get (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -7457,7 +7441,7 @@ i32.add i32.load16_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 174 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 175 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7523,12 +7507,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 175 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 176 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int32Array#map (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7593,7 +7577,7 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 177 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 178 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7659,12 +7643,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 178 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint32Array#map (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7729,7 +7713,7 @@ end local.get $6 ) - (func $~lib/typedarray/Uint32Array#__get (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__get (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -7752,7 +7736,7 @@ i32.add i32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 181 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 182 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7818,12 +7802,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 182 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 183 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Int64Array#map (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7888,7 +7872,7 @@ end local.get $6 ) - (func $~lib/typedarray/Int64Array#__get (; 184 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#__get (; 185 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -7911,7 +7895,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 185 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 186 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7977,12 +7961,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 186 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 187 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Uint64Array#map (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8047,7 +8031,7 @@ end local.get $6 ) - (func $~lib/typedarray/Uint64Array#__get (; 188 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Uint64Array#__get (; 189 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -8070,7 +8054,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 189 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 190 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -8136,12 +8120,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 190 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 191 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 local.get $0 f32.mul ) - (func $~lib/typedarray/Float32Array#map (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8206,7 +8190,7 @@ end local.get $6 ) - (func $~lib/typedarray/Float32Array#__get (; 192 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Float32Array#__get (; 193 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -8229,7 +8213,7 @@ i32.add f32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 193 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 194 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -8295,12 +8279,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 194 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 195 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 local.get $0 f64.mul ) - (func $~lib/typedarray/Float64Array#map (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8365,7 +8349,7 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 196 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 197 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -8431,7 +8415,7 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 197 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 198 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -8440,7 +8424,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#some (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8500,7 +8484,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 199 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 200 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -8509,7 +8493,7 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 200 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 201 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8563,14 +8547,14 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 201 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 202 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8Array#some (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8630,14 +8614,14 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 203 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 204 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 204 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 205 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8691,14 +8675,14 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 205 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 206 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#some (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#some (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8758,14 +8742,14 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 207 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 208 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 208 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 209 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8819,7 +8803,7 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 209 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 210 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -8828,7 +8812,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#some (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8888,7 +8872,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 211 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 212 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -8897,7 +8881,7 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 212 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 213 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8951,14 +8935,14 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 213 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 214 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint16Array#some (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9018,14 +9002,14 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 215 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 216 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 216 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 217 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9079,12 +9063,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 217 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 218 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#some (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 219 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9144,12 +9128,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 219 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 220 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 220 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 221 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9203,12 +9187,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 221 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 222 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint32Array#some (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#some (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9268,12 +9252,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 223 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 224 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 224 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 225 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9327,12 +9311,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 225 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 226 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#some (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 227 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9392,12 +9376,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 227 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 228 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 228 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 229 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9451,12 +9435,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 229 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 230 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Uint64Array#some (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#some (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9516,12 +9500,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 231 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 232 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 232 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 233 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9575,12 +9559,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 233 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 234 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#some (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 235 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9640,12 +9624,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 235 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 236 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 236 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 237 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9699,12 +9683,12 @@ unreachable end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 237 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 238 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#some (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 239 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9764,12 +9748,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 239 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 240 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 0 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 240 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 241 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9823,7 +9807,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 241 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -9832,7 +9816,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#findIndex (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9892,7 +9876,7 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 243 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 244 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -9901,7 +9885,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 244 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 245 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9954,14 +9938,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 245 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 246 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8Array#findIndex (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 247 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10021,14 +10005,14 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 247 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 248 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 248 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 249 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10081,14 +10065,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 249 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 250 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 251 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10148,14 +10132,14 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 251 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 252 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 252 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 253 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10208,7 +10192,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 253 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 254 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -10217,7 +10201,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#findIndex (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10277,7 +10261,7 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 255 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 256 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -10286,7 +10270,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 256 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 257 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10339,14 +10323,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 257 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 258 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint16Array#findIndex (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10406,14 +10390,14 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 259 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 260 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 260 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 261 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10466,12 +10450,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 261 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#findIndex (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10531,12 +10515,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 263 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 264 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 264 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 265 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10589,12 +10573,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 265 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 266 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint32Array#findIndex (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findIndex (; 267 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10654,12 +10638,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 268 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 268 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 269 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10712,12 +10696,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 269 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 270 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#findIndex (; 270 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10777,12 +10761,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 271 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 272 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 272 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 273 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10835,12 +10819,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 273 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 274 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Uint64Array#findIndex (; 274 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#findIndex (; 275 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10900,12 +10884,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 275 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 276 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 276 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 277 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10958,12 +10942,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 277 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 278 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#findIndex (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 279 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11023,12 +11007,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 279 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 280 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 280 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 281 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11081,12 +11065,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 281 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 282 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#findIndex (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11146,12 +11130,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 283 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 284 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 284 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 285 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11204,7 +11188,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 285 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 286 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -11215,7 +11199,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Int8Array#every (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 287 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11282,7 +11266,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 287 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 288 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -11291,7 +11275,7 @@ i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 288 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 289 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11345,7 +11329,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 289 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 290 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -11354,7 +11338,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint8Array#every (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11421,14 +11405,14 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 291 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 292 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 292 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 293 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11482,7 +11466,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 293 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 294 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -11491,7 +11475,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#every (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#every (; 295 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11558,14 +11542,14 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 295 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 296 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 296 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 297 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11619,7 +11603,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 297 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 298 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -11630,7 +11614,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Int16Array#every (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 299 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11697,7 +11681,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 299 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 300 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -11706,7 +11690,7 @@ i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 300 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 301 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11760,7 +11744,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 301 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 302 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and @@ -11769,7 +11753,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint16Array#every (; 302 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11836,14 +11820,14 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 303 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 304 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 304 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 305 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11897,14 +11881,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 305 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 306 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_s i32.const 0 i32.eq ) - (func $~lib/typedarray/Int32Array#every (; 306 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 307 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11971,12 +11955,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 307 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 308 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 308 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 309 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12030,14 +12014,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 309 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 310 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_u i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint32Array#every (; 310 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#every (; 311 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12104,12 +12088,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 311 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 312 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 312 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 313 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12163,14 +12147,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 313 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 314 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $~lib/typedarray/Int64Array#every (; 314 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 315 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12237,12 +12221,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 315 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 316 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 316 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 317 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12296,14 +12280,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 317 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 318 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $~lib/typedarray/Uint64Array#every (; 318 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#every (; 319 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12370,12 +12354,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 319 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 320 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 320 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 321 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12429,12 +12413,12 @@ unreachable end ) - (func $~lib/builtins/isNaN (; 321 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 322 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $~lib/math/NativeMathf.mod (; 322 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 323 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12685,14 +12669,14 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 323 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 324 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $~lib/typedarray/Float32Array#every (; 324 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 325 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12759,12 +12743,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 325 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 326 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 326 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 327 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12818,12 +12802,12 @@ unreachable end ) - (func $~lib/builtins/isNaN (; 327 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 328 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/math/NativeMath.mod (; 328 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 329 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -13076,14 +13060,14 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 329 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 330 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $~lib/typedarray/Float64Array#every (; 330 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 331 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13150,12 +13134,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 331 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 332 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 332 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 333 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13209,7 +13193,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 333 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 334 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -13264,7 +13248,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int8Array#forEach (; 334 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#forEach (; 335 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13309,7 +13293,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 335 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 336 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -13365,7 +13349,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 336 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 337 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -13416,7 +13400,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint8Array#forEach (; 337 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 338 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13461,7 +13445,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 338 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 339 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -13511,7 +13495,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 339 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 340 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -13562,7 +13546,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (; 340 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#forEach (; 341 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13607,7 +13591,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 341 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 342 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -13657,7 +13641,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 342 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 343 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -13712,7 +13696,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int16Array#forEach (; 343 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#forEach (; 344 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13757,7 +13741,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 344 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 345 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -13813,7 +13797,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 345 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 346 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -13864,7 +13848,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint16Array#forEach (; 346 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 347 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13909,7 +13893,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 347 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 348 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -13959,7 +13943,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 348 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 349 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14006,7 +13990,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int32Array#forEach (; 349 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 350 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14051,7 +14035,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 350 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 351 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14095,7 +14079,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 351 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 352 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14142,7 +14126,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint32Array#forEach (; 352 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#forEach (; 353 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14187,7 +14171,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 353 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 354 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14231,7 +14215,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 354 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 355 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14279,7 +14263,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int64Array#forEach (; 355 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 356 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14324,7 +14308,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 356 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 357 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14371,7 +14355,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 357 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 358 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14419,7 +14403,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint64Array#forEach (; 358 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#forEach (; 359 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14464,7 +14448,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 359 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 360 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14511,7 +14495,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 360 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 361 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14559,7 +14543,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float32Array#forEach (; 361 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#forEach (; 362 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14604,7 +14588,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 362 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 363 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14651,7 +14635,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 363 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 364 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) (local $3 i32) global.get $std/typedarray/forEachValues local.get $1 @@ -14699,7 +14683,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float64Array#forEach (; 364 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#forEach (; 365 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14744,7 +14728,7 @@ unreachable end ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 365 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 366 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 global.set $std/typedarray/forEachCallCount @@ -14791,7 +14775,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reverse (; 366 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 367 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14861,7 +14845,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 367 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 368 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15025,7 +15009,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reverse (; 368 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 369 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15095,7 +15079,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8Array#subarray (; 369 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 370 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15224,7 +15208,7 @@ i32.const 5 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 370 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 371 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15382,7 +15366,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#reverse (; 371 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reverse (; 372 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15452,7 +15436,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 372 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 373 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15581,7 +15565,7 @@ i32.const 6 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 373 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 374 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15739,7 +15723,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reverse (; 374 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 375 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15809,7 +15793,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int16Array#subarray (; 375 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 376 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15938,7 +15922,7 @@ i32.const 7 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 376 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 377 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16102,7 +16086,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reverse (; 377 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 378 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16172,7 +16156,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint16Array#subarray (; 378 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 379 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16301,7 +16285,7 @@ i32.const 8 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 379 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 380 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16459,7 +16443,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reverse (; 380 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 381 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16529,7 +16513,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 381 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 382 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16681,7 +16665,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#reverse (; 382 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reverse (; 383 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16751,7 +16735,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint32Array#subarray (; 383 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 384 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16880,7 +16864,7 @@ i32.const 10 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 384 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 385 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17032,7 +17016,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reverse (; 385 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 386 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17102,7 +17086,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int64Array#subarray (; 386 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 387 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17231,7 +17215,7 @@ i32.const 11 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 387 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 388 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17386,7 +17370,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#reverse (; 388 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#reverse (; 389 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17456,7 +17440,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint64Array#subarray (; 389 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 390 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17585,7 +17569,7 @@ i32.const 12 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 390 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 391 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17740,7 +17724,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reverse (; 391 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 392 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17810,7 +17794,7 @@ end local.get $1 ) - (func $~lib/typedarray/Float32Array#subarray (; 392 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 393 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17939,7 +17923,7 @@ i32.const 13 call $~lib/runtime/runtime.register ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 393 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 394 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18094,7 +18078,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reverse (; 394 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 395 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18164,7 +18148,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 395 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 396 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18319,7 +18303,7 @@ unreachable end ) - (func $start:std/typedarray (; 396 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 397 ;) (type $FUNCSIG$v) (local $0 i32) global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.const 1 @@ -19553,9 +19537,9 @@ call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> ) - (func $start (; 397 ;) (type $FUNCSIG$v) + (func $start (; 398 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $null (; 398 ;) (type $FUNCSIG$v) + (func $null (; 399 ;) (type $FUNCSIG$v) ) )