diff --git a/src/common.ts b/src/common.ts index f5d6675edd..25aa30da3b 100644 --- a/src/common.ts +++ b/src/common.ts @@ -165,6 +165,7 @@ export namespace CommonNames { // objects export const this_ = "this"; export const super_ = "super"; + export const defaultConstructor = "constructor|default"; export const constructor = "constructor"; // constants export const ASC_TARGET = "ASC_TARGET"; diff --git a/src/compiler.ts b/src/compiler.ts index 6508090626..e96529f93d 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8738,6 +8738,63 @@ export class Compiler extends DiagnosticEmitter { return this.compileInstantiate(ctor, expression.args, constraints, expression); } + ensureDefaultConstructor( + /** Class wanting a constructor. */ + classInstance: Class, + ): Function | null { + let nonParameterFields = classInstance.nonParameterMembers; + // should not have default constructor when there are not nonParameterMembers + if (!nonParameterFields) return null; + + let module = this.module; + let sizeTypeRef = this.options.sizeTypeRef; + let instance = classInstance.makeNativeMethod( + CommonNames.defaultConstructor, + [], + Type.void + ); + instance.set(CommonFlags.Compiled); + instance.prototype.setResolvedInstance("", instance); + let stmts = new Array(); + + let previousFlow = this.currentFlow; + let flow = instance.flow; + this.currentFlow = flow; + + let thisLocalIndex = flow.lookupLocal(CommonNames.this_)!.index; + for (let i = 0, k = nonParameterFields.length; i < k; ++i) { + let field = unchecked(nonParameterFields[i]); + let fieldType = field.type; + let fieldPrototype = field.prototype; + let initializerNode = fieldPrototype.initializerNode; + assert(fieldPrototype.parameterIndex < 0); + let setterInstance = assert(field.setterInstance); + let expr = this.makeCallDirect(setterInstance, [ + module.local_get(thisLocalIndex, sizeTypeRef), + initializerNode // use initializer if present, otherwise initialize with zero + ? this.compileExpression(initializerNode, fieldType, Constraints.ConvImplicit) + : this.makeZero(fieldType) + ], field.identifierNode, true); + if (this.currentType != Type.void) { // in case + expr = module.drop(expr); + } + stmts.push(expr); + } + + let signature = instance.signature; + let funcRef = module.addFunction( + instance.internalName, + signature.paramRefs, + signature.resultRefs, + typesToRefs(instance.getNonParameterLocalTypes()), + module.flatten(stmts) + ); + instance.finalize(module, funcRef); + + this.currentFlow = previousFlow; + return instance; + } + /** Gets the compiled constructor of the specified class or generates one if none is present. */ ensureConstructor( /** Class wanting a constructor. */ @@ -8751,120 +8808,112 @@ export class Compiler extends DiagnosticEmitter { if (instance.is(CommonFlags.Compiled)) return instance; // do not attempt to compile if inlined anyway if (!instance.hasDecorator(DecoratorFlags.Inline)) this.compileFunction(instance); - } else { - // clone base constructor if a derived class. note that we cannot just - // call the base ctor since the derived class may have additional fields. - let baseClass = classInstance.base; - let contextualTypeArguments = cloneMap(classInstance.contextualTypeArguments); - if (baseClass) { - let baseCtor = this.ensureConstructor(baseClass, reportNode); - this.checkFieldInitialization(baseClass, reportNode); - instance = new Function( + return instance; + } + // clone base constructor if a derived class. note that we cannot just + // call the base ctor since the derived class may have additional fields. + let baseClass = classInstance.base; + let contextualTypeArguments = cloneMap(classInstance.contextualTypeArguments); + if (baseClass) { + let baseCtor = this.ensureConstructor(baseClass, reportNode); + this.checkFieldInitialization(baseClass, reportNode); + instance = new Function( + CommonNames.constructor, + new FunctionPrototype( CommonNames.constructor, - new FunctionPrototype( - CommonNames.constructor, - classInstance, - // declaration is important, i.e. to access optional parameter initializers - (baseCtor.declaration).clone() - ), - null, - Signature.create( - this.program, - baseCtor.signature.parameterTypes, - classInstance.type, - classInstance.type, - baseCtor.signature.requiredParameters, - baseCtor.signature.hasRest - ), - contextualTypeArguments - ); + classInstance, + // declaration is important, i.e. to access optional parameter initializers + (baseCtor.declaration).clone() + ), + null, + Signature.create( + this.program, + baseCtor.signature.parameterTypes, + classInstance.type, + classInstance.type, + baseCtor.signature.requiredParameters, + baseCtor.signature.hasRest + ), + contextualTypeArguments + ); - // otherwise make a default constructor - } else { - instance = new Function( - CommonNames.constructor, - new FunctionPrototype( - CommonNames.constructor, - classInstance, // bound - this.program.makeNativeFunctionDeclaration(CommonNames.constructor, - CommonFlags.Instance | CommonFlags.Constructor - ) - ), - null, - Signature.create(this.program, [], classInstance.type, classInstance.type), - contextualTypeArguments - ); - } + // otherwise make a default constructor + } else { + instance = classInstance.makeNativeMethod( + CommonNames.constructor, + [], + classInstance.type, + CommonFlags.Constructor + ); + } - instance.set(CommonFlags.Compiled); - instance.prototype.setResolvedInstance("", instance); - if (classInstance.is(CommonFlags.ModuleExport)) { - instance.set(CommonFlags.ModuleExport); - } - classInstance.constructorInstance = instance; - let members = classInstance.members; - if (!members) classInstance.members = members = new Map(); - members.set("constructor", instance.prototype); + instance.set(CommonFlags.Compiled); + instance.prototype.setResolvedInstance("", instance); + if (classInstance.is(CommonFlags.ModuleExport)) { + instance.set(CommonFlags.ModuleExport); + } + classInstance.constructorInstance = instance; + let members = classInstance.members; + if (!members) classInstance.members = members = new Map(); + members.set("constructor", instance.prototype); - let previousFlow = this.currentFlow; - let flow = instance.flow; - this.currentFlow = flow; + let previousFlow = this.currentFlow; + let flow = instance.flow; + this.currentFlow = flow; - // generate body - let signature = instance.signature; - let module = this.module; - let sizeTypeRef = this.options.sizeTypeRef; - let stmts = new Array(); + // generate body + let signature = instance.signature; + let module = this.module; + let sizeTypeRef = this.options.sizeTypeRef; + let stmts = new Array(); - // { - // this = - // IF_DERIVED: this = super(this, ...args) - // this.a = X - // this.b = Y - // return this - // } - stmts.push( - this.makeConditionalAllocation(classInstance, 0) - ); - if (baseClass) { - let parameterTypes = signature.parameterTypes; - let numParameters = parameterTypes.length; - let operands = new Array(1 + numParameters); - operands[0] = module.local_get(0, sizeTypeRef); - for (let i = 1; i <= numParameters; ++i) { - operands[i] = module.local_get(i, parameterTypes[i - 1].toRef()); - } - stmts.push( - module.local_set(0, - this.makeCallDirect(assert(baseClass.constructorInstance), operands, reportNode, false), - baseClass.type.isManaged - ) - ); + // { + // this = + // IF_DERIVED: this = super(this, ...args) + // this.a = X + // this.b = Y + // return this + // } + stmts.push( + this.makeConditionalAllocation(classInstance, 0) + ); + if (baseClass) { + let parameterTypes = signature.parameterTypes; + let numParameters = parameterTypes.length; + let operands = new Array(1 + numParameters); + operands[0] = module.local_get(0, sizeTypeRef); + for (let i = 1; i <= numParameters; ++i) { + operands[i] = module.local_get(i, parameterTypes[i - 1].toRef()); } - this.makeFieldInitializationInConstructor(classInstance, stmts); stmts.push( - module.local_get(0, sizeTypeRef) - ); - this.currentFlow = previousFlow; - - // make the function - let locals = instance.localsByIndex; - let varTypes = new Array(); // of temp. vars added while compiling initializers - let numOperands = 1 + signature.parameterTypes.length; - let numLocals = locals.length; - if (numLocals > numOperands) { - for (let i = numOperands; i < numLocals; ++i) varTypes.push(locals[i].type.toRef()); - } - let funcRef = module.addFunction( - instance.internalName, - signature.paramRefs, - signature.resultRefs, - varTypes, - module.flatten(stmts, sizeTypeRef) + module.local_set(0, + this.makeCallDirect(assert(baseClass.constructorInstance), operands, reportNode, false), + baseClass.type.isManaged + ) ); - instance.finalize(module, funcRef); } + this.makeFieldInitializationInConstructor(classInstance, stmts); + stmts.push( + module.local_get(0, sizeTypeRef) + ); + this.currentFlow = previousFlow; + // make the function + let locals = instance.localsByIndex; + let varTypes = new Array(); // of temp. vars added while compiling initializers + let numOperands = 1 + signature.parameterTypes.length; + let numLocals = locals.length; + if (numLocals > numOperands) { + for (let i = numOperands; i < numLocals; ++i) varTypes.push(locals[i].type.toRef()); + } + let funcRef = module.addFunction( + instance.internalName, + signature.paramRefs, + signature.resultRefs, + varTypes, + module.flatten(stmts, sizeTypeRef) + ); + instance.finalize(module, funcRef); return instance; } @@ -10265,64 +10314,26 @@ export class Compiler extends DiagnosticEmitter { let module = this.module; let flow = this.currentFlow; - let isInline = flow.isInline; - let thisLocalIndex = isInline ? flow.lookupLocal(CommonNames.this_)!.index : 0; + let thisLocalIndex = flow.lookupLocal(CommonNames.this_)!.index; let sizeTypeRef = this.options.sizeTypeRef; - let nonParameterFields: Property[] | null = null; - - // TODO: for (let member of members.values()) { - for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { - let member = unchecked(_values[i]); - if (member.kind != ElementKind.PropertyPrototype) continue; - // only interested in fields (resolved during class finalization) - let property = (member).instance; - if (!property || !property.isField || property.getBoundClassOrInterface() != classInstance) continue; - assert(!property.isAny(CommonFlags.Const)); - let fieldPrototype = property.prototype; - let parameterIndex = fieldPrototype.parameterIndex; - - // Defer non-parameter fields until parameter fields are initialized - if (parameterIndex < 0) { - if (!nonParameterFields) nonParameterFields = new Array(); - nonParameterFields.push(property); - continue; - } - // Initialize constructor parameter field - let fieldType = property.type; - let fieldTypeRef = fieldType.toRef(); - assert(!fieldPrototype.initializerNode); - let setterInstance = assert(property.setterInstance); - let expr = this.makeCallDirect(setterInstance, [ - module.local_get(thisLocalIndex, sizeTypeRef), - module.local_get( - isInline - ? flow.lookupLocal(property.name)!.index - : 1 + parameterIndex, // `this` is local 0 - fieldTypeRef - ) - ], setterInstance.identifierNode, true); - if (this.currentType != Type.void) { // in case - expr = module.drop(expr); - } - stmts.push(expr); - } - - // Initialize deferred non-parameter fields - if (nonParameterFields) { - for (let i = 0, k = nonParameterFields.length; i < k; ++i) { - let field = unchecked(nonParameterFields[i]); - let fieldType = field.type; - let fieldPrototype = field.prototype; - let initializerNode = fieldPrototype.initializerNode; - assert(fieldPrototype.parameterIndex < 0); - let setterInstance = assert(field.setterInstance); + // Initialize constructor parameter field + let parameterFields: Property[] | null = classInstance.parameterMembers; + if (parameterFields) { + for (let i = 0, k = parameterFields.length; i < k; ++i) { + let property = unchecked(parameterFields[i]); + let fieldPrototype = property.prototype; + let fieldType = property.type; + let fieldTypeRef = fieldType.toRef(); + assert(!fieldPrototype.initializerNode); + let setterInstance = assert(property.setterInstance); let expr = this.makeCallDirect(setterInstance, [ module.local_get(thisLocalIndex, sizeTypeRef), - initializerNode // use initializer if present, otherwise initialize with zero - ? this.compileExpression(initializerNode, fieldType, Constraints.ConvImplicit) - : this.makeZero(fieldType) - ], field.identifierNode, true); + module.local_get( + flow.lookupLocal(property.name)!.index, + fieldTypeRef + ) + ], setterInstance.identifierNode, true); if (this.currentType != Type.void) { // in case expr = module.drop(expr); } @@ -10330,6 +10341,18 @@ export class Compiler extends DiagnosticEmitter { } } + // Initialize deferred non-parameter fields + let defaultConstructor = this.ensureDefaultConstructor(classInstance); + if (defaultConstructor) { + stmts.push( + this.makeCallDirect( + defaultConstructor, + [module.local_get(thisLocalIndex, sizeTypeRef)], + classInstance.declaration, + true + ) + ); + } this.currentType = Type.void; return stmts; } diff --git a/src/program.ts b/src/program.ts index 1f9849eec2..13a82a0496 100644 --- a/src/program.ts +++ b/src/program.ts @@ -131,7 +131,8 @@ import { writeF64, writeI64, writeI32AsI64, - writeI64AsI32 + writeI64AsI32, + cloneMap } from "./util"; import { @@ -4886,6 +4887,78 @@ export class Class extends TypedElement { } return false; } + + get nonParameterMembers(): Property[] | null { + let members = this.members; + if (!members) return null; + + let nonParameterFields: Property[] | null = null; + for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { + let member = unchecked(_values[i]); + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField || property.getBoundClassOrInterface() != this) continue; + assert(!property.is(CommonFlags.Const)); + let fieldPrototype = property.prototype; + if (fieldPrototype.parameterIndex < 0) { + if (!nonParameterFields) nonParameterFields = new Array(); + nonParameterFields.push(property); + } + } + return nonParameterFields; + } + + get parameterMembers(): Property[] | null { + let members = this.members; + if (!members) return null; + + let parameterFields: Property[] | null = null; + for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { + let member = unchecked(_values[i]); + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField || property.getBoundClassOrInterface() != this) continue; + assert(!property.is(CommonFlags.Const)); + let fieldPrototype = property.prototype; + if (fieldPrototype.parameterIndex >= 0) { + if (!parameterFields) parameterFields = new Array(); + parameterFields.push(property); + } + } + return parameterFields; + } + + /** Creates a native function. */ + makeNativeMethod( + /** The simple name of the function. */ + name: string, + /** Function signature parameter types. */ + parameterTypes: Type[], + /** Function signature return type. */ + returnType: Type, + /** Flags indicating specific traits, e.g. `GENERIC`. */ + flags: CommonFlags = CommonFlags.None, + /** Decorator flags representing built-in decorators. */ + decoratorFlags: DecoratorFlags = DecoratorFlags.None + ): Function { + return new Function( + name, + new FunctionPrototype( + name, + this, + this.program.makeNativeFunctionDeclaration( + name, + CommonFlags.Instance | flags + ), + decoratorFlags + ), + null, + Signature.create(this.program, parameterTypes, returnType, this.type), + cloneMap(this.contextualTypeArguments) + ); + } } /** A yet unresolved interface. */ diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index 84f831ff37..a13acbf703 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func)) (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i64))) @@ -2405,6 +2405,37 @@ unreachable end ) + (func $assignment-chain/A#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i64.const 0 + call $assignment-chain/A#set:x + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i64.const 0 + call $assignment-chain/A#set:y + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $assignment-chain/A#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2441,16 +2472,7 @@ local.get $1 i32.store offset=4 local.get $1 - i64.const 0 - call $assignment-chain/A#set:x - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i64.const 0 - call $assignment-chain/A#set:y + call $assignment-chain/A#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2523,6 +2545,45 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $assignment-chain/B#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $assignment-chain/B#set:_setter_cnt + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $assignment-chain/B#set:_getter_cnt + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.const 0 + call $assignment-chain/B#set:_y + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $assignment-chain/B#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2559,24 +2620,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $assignment-chain/B#set:_setter_cnt - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $assignment-chain/B#set:_getter_cnt - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - call $assignment-chain/B#set:_y + call $assignment-chain/B#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index f7c0cdbab6..4dec61325f 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -122,7 +122,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$129 + block $__inlined_func$~lib/rt/itcms/Object#unlink$131 local.get $1 i32.load offset=4 i32.const -4 @@ -146,7 +146,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$129 + br $__inlined_func$~lib/rt/itcms/Object#unlink$131 end local.get $1 i32.load offset=8 @@ -1660,29 +1660,48 @@ i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=4 + local.tee $2 local.get $1 + i32.store offset=4 local.get $2 + local.get $1 call $~lib/object/Object#constructor local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1532 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 i64.store offset=8 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1795,35 +1814,54 @@ i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=4 + local.tee $2 local.get $1 + i32.store offset=4 local.get $2 + local.get $1 call $~lib/object/Object#constructor local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1532 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 f64.store offset=8 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index cebadb0ee0..0c074a1c17 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -3414,6 +3414,45 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -3444,24 +3483,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 @@ -4104,6 +4126,53 @@ local.get $5 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -4137,32 +4206,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -4632,6 +4676,53 @@ local.get $5 return ) + (func $~lib/array/Array<~lib/string/String>#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -4665,32 +4756,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array<~lib/string/String>#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -5070,41 +5136,21 @@ local.get $5 return ) - (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) + (func $bindings/esm/PlainObject#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this + i32.const 0 i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:a @@ -5112,7 +5158,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:b @@ -5120,7 +5166,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:c @@ -5128,7 +5174,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $bindings/esm/PlainObject#set:d @@ -5136,7 +5182,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:e @@ -5144,7 +5190,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:f @@ -5152,7 +5198,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:g @@ -5160,7 +5206,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $bindings/esm/PlainObject#set:h @@ -5168,7 +5214,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:i @@ -5176,7 +5222,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:j @@ -5184,7 +5230,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:k @@ -5192,7 +5238,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f32.const 0 call $bindings/esm/PlainObject#set:l @@ -5200,7 +5246,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 call $bindings/esm/PlainObject#set:m @@ -5208,7 +5254,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:n @@ -5216,7 +5262,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:o @@ -5224,10 +5270,52 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:p + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $bindings/esm/PlainObject#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index b99d7d1e01..aae523e82a 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2424,55 +2424,55 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 i32.const 0 i32.store offset=8 - local.get $2 + local.get $5 local.get $0 i32.store local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $7 + local.get $2 + i32.store offset=4 + local.get $7 + block $__inlined_func$~lib/arraybuffer/ArrayBufferView#constructor$1 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 - i32.store offset=4 - local.get $6 - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s @@ -2495,8 +2495,24 @@ i32.store end global.get $~lib/memory/__stack_pointer + local.tee $7 local.get $2 i32.store offset=4 + local.get $7 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + i32.store + local.get $7 + local.get $2 + i32.store local.get $2 i32.const 0 i32.store @@ -2506,17 +2522,21 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 i32.const 134217727 i32.gt_u if @@ -2528,10 +2548,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 3 i32.shl - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new local.tee $7 @@ -2559,25 +2579,25 @@ local.get $2 i32.store offset=4 local.get $2 - local.get $5 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $__inlined_func$~lib/arraybuffer/ArrayBufferView#constructor$1 end br $folding-inner1 end local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $2 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -2856,6 +2876,60 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3285,13 +3359,15 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3300,45 +3376,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 + i64.const 0 + i64.store offset=8 + local.get $6 local.get $0 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $4 - local.get $3 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $2 - local.get $4 - i32.add - local.set $5 + call $~lib/array/Array#get:length local.get $3 - i32.const 4 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3346,42 +3405,273 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.tee $4 + i64.const 0 + i64.store + local.get $4 + i64.const 0 + i64.store offset=8 + local.get $4 + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $5 - i32.const 1073741820 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 268435455 i32.gt_u if i32.const 1248 - i32.const 1296 - i32.const 52 - i32.const 43 + i32.const 1920 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new local.tee $5 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 + local.get $4 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $0 + i32.store offset=12 local.get $4 - memory.copy + local.get $5 + i32.store local.get $4 local.get $5 - i32.add - local.get $1 - local.get $2 - memory.copy + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $4 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $4 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $3 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $4 + local.get $3 + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.get $4 + i32.add + local.set $5 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $4 + memory.copy + local.get $4 + local.get $5 + i32.add + local.get $1 + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3780,6 +4070,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3805,27 +4096,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 0 i32.store offset=8 - local.get $3 + local.get $6 local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.add - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3835,107 +4125,85 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 16 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $3 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=12 - local.get $6 local.get $4 + local.get $5 i32.store - local.get $6 local.get $4 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - local.get $3 + local.get $4 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - local.get $5 + local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 + local.get $4 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3947,12 +4215,12 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $6 + local.get $4 local.get $2 local.get $0 local.get $2 @@ -3977,7 +4245,7 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3990,7 +4258,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $6 + local.get $4 local.get $3 local.get $1 local.get $2 @@ -4011,7 +4279,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 return end i32.const 35072 @@ -4022,11 +4290,44 @@ unreachable ) (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $bindings/esm/arrayOfStringsFunction + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4037,14 +4338,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 - local.get $3 - i32.const 16 + local.get $2 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4052,471 +4353,227 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 0 + i32.store offset=8 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s br_if $folding-inner1 + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 12 + local.get $0 + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 + local.tee $0 i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 + local.tee $3 + local.get $0 i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.tee $5 i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u + i32.store + local.get $0 + i32.eqz if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store local.get $3 - i32.store offset=12 - local.get $5 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 local.get $3 + local.get $0 i32.store - local.get $5 + local.get $0 + i32.const 0 + i32.store16 offset=2 local.get $3 + local.get $0 + i32.store + local.get $0 i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 + local.get $0 + i32.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 offset=16 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store16 offset=18 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $3 + local.get $0 + i32.store + local.get $0 + i64.const 0 + i64.store offset=24 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=32 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 offset=40 + local.get $3 + local.get $0 + i32.store + local.get $0 + f32.const 0 + f32.store offset=44 + local.get $3 + local.get $0 + i32.store + local.get $0 + f64.const 0 + f64.store offset=48 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=56 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=60 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + i32.store + local.get $0 i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end + i32.store offset=64 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $4 local.get $0 - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $4 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=56 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=60 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=64 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 - end - br $folding-inner1 - end - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 i32.load8_s - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 local.get $1 i32.load8_s i32.add i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 i32.load16_s offset=2 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -4525,7 +4582,7 @@ i32.load16_s offset=2 i32.add i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index bfe4a74937..8033cb49b7 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -2585,6 +2585,45 @@ unreachable end ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -2615,24 +2654,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index ae70539bb7..73f9f4dd80 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -156,7 +156,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$130 + block $__inlined_func$~lib/rt/itcms/Object#unlink$131 local.get $0 i32.load offset=4 i32.const -4 @@ -180,7 +180,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$130 + br $__inlined_func$~lib/rt/itcms/Object#unlink$131 end local.get $0 i32.load offset=8 @@ -1824,7 +1824,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $__inlined_func$start:bindings/noExportRuntime$2 + block $__inlined_func$start:bindings/noExportRuntime$1 block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1780 @@ -1894,24 +1894,44 @@ i32.store end global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1780 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + i32.store local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#set:buffer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1951,7 +1971,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $bindings/noExportRuntime/isTypedArray - br $__inlined_func$start:bindings/noExportRuntime$2 + br $__inlined_func$start:bindings/noExportRuntime$1 end i32.const 34576 i32.const 34624 diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 7bf955aa6b..aead40ffdd 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -3417,6 +3417,45 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -3447,24 +3486,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 @@ -4107,6 +4129,53 @@ local.get $5 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -4140,32 +4209,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -4635,6 +4679,53 @@ local.get $5 return ) + (func $~lib/array/Array<~lib/string/String>#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -4668,32 +4759,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array<~lib/string/String>#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -5073,41 +5139,21 @@ local.get $5 return ) - (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) + (func $bindings/esm/PlainObject#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this + i32.const 0 i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:a @@ -5115,7 +5161,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:b @@ -5123,7 +5169,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:c @@ -5131,7 +5177,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $bindings/esm/PlainObject#set:d @@ -5139,7 +5185,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:e @@ -5147,7 +5193,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:f @@ -5155,7 +5201,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:g @@ -5163,7 +5209,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $bindings/esm/PlainObject#set:h @@ -5171,7 +5217,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:i @@ -5179,7 +5225,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:j @@ -5187,7 +5233,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:k @@ -5195,7 +5241,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f32.const 0 call $bindings/esm/PlainObject#set:l @@ -5203,7 +5249,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 call $bindings/esm/PlainObject#set:m @@ -5211,7 +5257,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:n @@ -5219,7 +5265,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:o @@ -5227,10 +5273,52 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $bindings/esm/PlainObject#set:p + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/PlainObject#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $bindings/esm/PlainObject#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 4bb5843896..1bcd601821 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2424,55 +2424,55 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 i32.const 0 i32.store offset=8 - local.get $2 + local.get $5 local.get $0 i32.store local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $7 + local.get $2 + i32.store offset=4 + local.get $7 + block $__inlined_func$~lib/arraybuffer/ArrayBufferView#constructor$1 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 - i32.store offset=4 - local.get $6 - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s @@ -2495,8 +2495,24 @@ i32.store end global.get $~lib/memory/__stack_pointer + local.tee $7 local.get $2 i32.store offset=4 + local.get $7 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + i32.store + local.get $7 + local.get $2 + i32.store local.get $2 i32.const 0 i32.store @@ -2506,17 +2522,21 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 i32.const 134217727 i32.gt_u if @@ -2528,10 +2548,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 3 i32.shl - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new local.tee $7 @@ -2559,25 +2579,25 @@ local.get $2 i32.store offset=4 local.get $2 - local.get $5 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $__inlined_func$~lib/arraybuffer/ArrayBufferView#constructor$1 end br $folding-inner1 end local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $2 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -2856,6 +2876,60 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3285,13 +3359,15 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3300,45 +3376,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 + i64.const 0 + i64.store offset=8 + local.get $6 local.get $0 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $4 - local.get $3 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $2 - local.get $4 - i32.add - local.set $5 + call $~lib/array/Array#get:length local.get $3 - i32.const 4 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3346,42 +3405,273 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.tee $4 + i64.const 0 + i64.store + local.get $4 + i64.const 0 + i64.store offset=8 + local.get $4 + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $5 - i32.const 1073741820 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 268435455 i32.gt_u if i32.const 1248 - i32.const 1296 - i32.const 52 - i32.const 43 + i32.const 1920 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new local.tee $5 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $5 + local.get $4 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $0 + i32.store offset=12 local.get $4 - memory.copy + local.get $5 + i32.store local.get $4 local.get $5 - i32.add - local.get $1 - local.get $2 - memory.copy + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $4 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $4 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $3 + local.get $5 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $4 + local.get $3 + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $2 + local.get $4 + i32.add + local.set $5 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $4 + memory.copy + local.get $4 + local.get $5 + i32.add + local.get $1 + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3780,6 +4070,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3805,27 +4096,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 0 i32.store offset=8 - local.get $3 + local.get $6 local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.add - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3835,107 +4125,85 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 16 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $3 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=12 - local.get $6 local.get $4 + local.get $5 i32.store - local.get $6 local.get $4 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 local.get $4 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - local.get $3 + local.get $4 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 - local.get $5 + local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 + local.get $4 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3947,12 +4215,12 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $6 + local.get $4 local.get $2 local.get $0 local.get $2 @@ -3977,7 +4245,7 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3990,7 +4258,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $6 + local.get $4 local.get $3 local.get $1 local.get $2 @@ -4011,7 +4279,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 return end i32.const 35072 @@ -4022,11 +4290,44 @@ unreachable ) (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $bindings/esm/arrayOfStringsFunction + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4037,14 +4338,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 - local.get $3 - i32.const 16 + local.get $2 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4052,471 +4353,227 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 0 + i32.store offset=8 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2276 i32.lt_s br_if $folding-inner1 + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 12 + local.get $0 + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 + local.tee $0 i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 + local.tee $3 + local.get $0 i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.tee $5 i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u + i32.store + local.get $0 + i32.eqz if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store local.get $3 - i32.store offset=12 - local.get $5 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 local.get $3 + local.get $0 i32.store - local.get $5 + local.get $0 + i32.const 0 + i32.store16 offset=2 local.get $3 + local.get $0 + i32.store + local.get $0 i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 i32.store offset=4 - local.get $5 local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 + local.get $0 + i32.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 offset=16 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store16 offset=18 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $3 + local.get $0 + i32.store + local.get $0 + i64.const 0 + i64.store offset=24 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=32 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=36 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store8 offset=40 + local.get $3 + local.get $0 + i32.store + local.get $0 + f32.const 0 + f32.store offset=44 + local.get $3 + local.get $0 + i32.store + local.get $0 + f64.const 0 + f64.store offset=48 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=56 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=60 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + i32.store + local.get $0 i32.const 0 - local.set $2 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end + i32.store offset=64 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $4 local.get $0 - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - local.get $4 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=56 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=60 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=64 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 - end - br $folding-inner1 - end - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 i32.load8_s - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 local.get $1 i32.load8_s i32.add i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 i32.load16_s offset=2 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -4525,7 +4582,7 @@ i32.load16_s offset=2 i32.add i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 050aff4d05..54c3e630ee 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func)) (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32 i32))) @@ -2452,6 +2452,29 @@ unreachable end ) + (func $call-super/A#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $call-super/A#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/A#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2478,8 +2501,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $call-super/A#set:a + call $call-super/A#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2506,6 +2528,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $call-super/B#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $call-super/B#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/B#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2532,8 +2577,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $call-super/B#set:b + call $call-super/B#constructor|default global.get $~lib/memory/__stack_pointer local.get $this local.set $1 @@ -2645,6 +2689,29 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $call-super/C#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $call-super/C#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/C#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2681,8 +2748,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $call-super/C#set:a + call $call-super/C#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2691,6 +2757,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $call-super/D#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $call-super/D#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/D#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2717,8 +2806,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $call-super/D#set:b + call $call-super/D#constructor|default global.get $~lib/memory/__stack_pointer local.get $this local.set $1 @@ -2830,6 +2918,29 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $call-super/E#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $call-super/E#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/E#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2856,8 +2967,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $call-super/E#set:a + call $call-super/E#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2884,6 +2994,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $call-super/F#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $call-super/F#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/F#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2920,8 +3053,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $call-super/F#set:b + call $call-super/F#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2987,6 +3119,29 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $call-super/G#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $call-super/G#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/G#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3023,8 +3178,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $call-super/G#set:a + call $call-super/G#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3033,6 +3187,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $call-super/H#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $call-super/H#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/H#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3069,8 +3246,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $call-super/H#set:b + call $call-super/H#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3136,6 +3312,29 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $call-super/I#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $call-super/I#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/I#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3162,8 +3361,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $call-super/I#set:a + call $call-super/I#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3172,6 +3370,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $call-super/J#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $call-super/J#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $call-super/J#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3208,8 +3429,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $call-super/J#set:b + call $call-super/J#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 35171b786e..ce1811616b 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -118,7 +118,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + block $__inlined_func$~lib/rt/itcms/Object#unlink$152 local.get $1 i32.load offset=4 i32.const -4 @@ -142,7 +142,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + br $__inlined_func$~lib/rt/itcms/Object#unlink$152 end local.get $1 i32.load offset=8 @@ -1596,16 +1596,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store offset=4 - local.get $2 + call $call-super/B#constructor|default + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1628,13 +1628,11 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store - local.get $3 + call $call-super/A#constructor|default + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1758,16 +1756,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store offset=4 - local.get $2 + call $call-super/B#constructor|default + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1802,8 +1800,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store + call $call-super/A#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1939,13 +1936,11 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store - local.get $3 + call $call-super/A#constructor|default + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1971,8 +1966,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store offset=4 + call $call-super/B#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2083,8 +2077,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store + call $call-super/A#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2096,8 +2089,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store offset=4 + call $call-super/B#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2196,13 +2188,11 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store - local.get $3 + call $call-super/A#constructor|default + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2213,8 +2203,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store offset=4 + call $call-super/B#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2327,6 +2316,70 @@ (func $~start call $start:call-super ) + (func $call-super/A#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-super/B#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-default-init.debug.wat b/tests/compiler/class-default-init.debug.wat new file mode 100644 index 0000000000..d4f43deeab --- /dev/null +++ b/tests/compiler/class-default-init.debug.wat @@ -0,0 +1,242 @@ +(module + (type $0 (func (param i32 i32))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $class-default-init/a (mut i32) (i32.const 0)) + (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) + (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) + (global $~lib/memory/__heap_base i32 (i32.const 172)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 140) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/stub/maybeGrowMemory (param $newOffset i32) + (local $pagesBefore i32) + (local $maxOffset i32) + (local $pagesNeeded i32) + (local $4 i32) + (local $5 i32) + (local $pagesWanted i32) + memory.size + local.set $pagesBefore + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $maxOffset + local.get $newOffset + local.get $maxOffset + i32.gt_u + if + local.get $newOffset + local.get $maxOffset + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesBefore + local.tee $4 + local.get $pagesNeeded + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + local.get $newOffset + global.set $~lib/rt/stub/offset + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/stub/__alloc (param $size i32) (result i32) + (local $block i32) + (local $ptr i32) + (local $size|3 i32) + (local $payloadSize i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 96 + i32.const 33 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/stub/offset + local.set $block + global.get $~lib/rt/stub/offset + i32.const 4 + i32.add + local.set $ptr + block $~lib/rt/stub/computeSize|inlined.0 (result i32) + local.get $size + local.set $size|3 + local.get $size|3 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + br $~lib/rt/stub/computeSize|inlined.0 + end + local.set $payloadSize + local.get $ptr + local.get $payloadSize + i32.add + call $~lib/rt/stub/maybeGrowMemory + local.get $block + local.get $payloadSize + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $ptr + return + ) + (func $~lib/rt/common/OBJECT#set:gcInfo (param $this i32) (param $gcInfo i32) + local.get $this + local.get $gcInfo + i32.store offset=4 + ) + (func $~lib/rt/common/OBJECT#set:gcInfo2 (param $this i32) (param $gcInfo2 i32) + local.get $this + local.get $gcInfo2 + i32.store offset=8 + ) + (func $~lib/rt/common/OBJECT#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/common/OBJECT#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/stub/__new (param $size i32) (param $id i32) (result i32) + (local $ptr i32) + (local $object i32) + local.get $size + i32.const 1073741804 + i32.gt_u + if + i32.const 32 + i32.const 96 + i32.const 86 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + i32.const 16 + local.get $size + i32.add + call $~lib/rt/stub/__alloc + local.set $ptr + local.get $ptr + i32.const 4 + i32.sub + local.set $object + local.get $object + i32.const 0 + call $~lib/rt/common/OBJECT#set:gcInfo + local.get $object + i32.const 0 + call $~lib/rt/common/OBJECT#set:gcInfo2 + local.get $object + local.get $id + call $~lib/rt/common/OBJECT#set:rtId + local.get $object + local.get $size + call $~lib/rt/common/OBJECT#set:rtSize + local.get $ptr + i32.const 16 + i32.add + return + ) + (func $class-default-init/ClassDefaultInit#set:v (param $this i32) (param $v i32) + local.get $this + local.get $v + i32.store + ) + (func $class-default-init/ClassDefaultInit#constructor|default (param $this i32) + local.get $this + global.get $class-default-init/a + call $class-default-init/ClassDefaultInit#set:v + ) + (func $class-default-init/ClassDefaultInit#constructor (param $this i32) (param $a i32) (result i32) + local.get $this + i32.eqz + if + i32.const 4 + i32.const 4 + call $~lib/rt/stub/__new + local.set $this + end + local.get $this + call $class-default-init/ClassDefaultInit#constructor|default + local.get $this + ) + (func $start:class-default-init + global.get $~lib/memory/__heap_base + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + global.set $~lib/rt/stub/startOffset + global.get $~lib/rt/stub/startOffset + global.set $~lib/rt/stub/offset + i32.const 0 + i32.const 160 + call $class-default-init/ClassDefaultInit#constructor + drop + ) + (func $~start + call $start:class-default-init + ) +) diff --git a/tests/compiler/class-default-init.json b/tests/compiler/class-default-init.json new file mode 100644 index 0000000000..e798175f71 --- /dev/null +++ b/tests/compiler/class-default-init.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "--runtime=stub" + ] +} diff --git a/tests/compiler/class-default-init.release.wat b/tests/compiler/class-default-init.release.wat new file mode 100644 index 0000000000..0710b5ec5e --- /dev/null +++ b/tests/compiler/class-default-init.release.wat @@ -0,0 +1,72 @@ +(module + (type $0 (func)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00s\00t\00u\00b\00.\00t\00s") + (data $2 (i32.const 1164) "\1c") + (data $2.1 (i32.const 1176) "\02") + (export "memory" (memory $0)) + (start $~start) + (func $~start + (local $0 i32) + (local $1 i32) + memory.size + local.tee $0 + i32.const 16 + i32.shl + i32.const 15 + i32.add + i32.const -16 + i32.and + local.tee $1 + i32.const 1228 + i32.lt_u + if + local.get $0 + i32.const 66763 + local.get $1 + i32.sub + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + i32.const 1196 + i32.const 28 + i32.store + i32.const 1200 + i32.const 0 + i32.store + i32.const 1204 + i32.const 0 + i32.store + i32.const 1208 + i32.const 4 + i32.store + i32.const 1212 + i32.const 4 + i32.store + i32.const 1216 + i32.const 0 + i32.store + ) +) diff --git a/tests/compiler/class-default-init.ts b/tests/compiler/class-default-init.ts new file mode 100644 index 0000000000..2c392ebca6 --- /dev/null +++ b/tests/compiler/class-default-init.ts @@ -0,0 +1,8 @@ +let a: i32 = 0; + +class ClassDefaultInit { + v: i32 = a; + constructor(a: string) {} +} + +new ClassDefaultInit(""); diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index e967a93f72..a5bdc15450 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -3065,6 +3065,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/A2#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $class-implements/A2#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/A2#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3101,8 +3124,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $class-implements/A2#set:foo + call $class-implements/A2#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3111,6 +3133,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/A3#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 5 + call $class-implements/A3#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/A3#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3147,8 +3192,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 5 - call $class-implements/A3#set:foo + call $class-implements/A3#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3157,6 +3201,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/A4#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 7 + call $class-implements/A4#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/A4#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3193,8 +3260,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 7 - call $class-implements/A4#set:foo + call $class-implements/A4#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3203,6 +3269,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/B2#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 3 + call $class-implements/B2#set:_foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/B2#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3239,8 +3328,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 3 - call $class-implements/B2#set:_foo + call $class-implements/B2#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3274,6 +3362,29 @@ local.get $1 return ) + (func $class-implements/B3#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 9 + call $class-implements/B3#set:_foo2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/B3#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3310,8 +3421,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 9 - call $class-implements/B3#set:_foo2 + call $class-implements/B3#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3345,6 +3455,29 @@ local.get $1 return ) + (func $class-implements/B4#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 11 + call $class-implements/B4#set:_foo2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $class-implements/B4#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3381,8 +3514,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 11 - call $class-implements/B4#set:_foo2 + call $class-implements/B4#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index e253112e6b..ba0f6be2b1 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -167,7 +167,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$174 + block $__inlined_func$~lib/rt/itcms/Object#unlink$182 local.get $1 i32.load offset=4 i32.const -4 @@ -191,7 +191,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$174 + br $__inlined_func$~lib/rt/itcms/Object#unlink$182 end local.get $1 i32.load offset=8 @@ -1887,51 +1887,72 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + local.get $1 + i32.const 4 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 local.get $1 - i32.const 4 - i32.const 14 - call $~lib/rt/itcms/__new + local.get $0 + call $~lib/object/Object#constructor local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 34384 + i32.const 34432 i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $class-implements/B2#constructor (param $0 i32) (result i32) (local $1 i32) @@ -1939,51 +1960,72 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + local.get $1 + i32.const 4 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 local.get $1 - i32.const 4 - i32.const 18 - call $~lib/rt/itcms/__new + local.get $0 + call $~lib/object/Object#constructor local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $class-implements/B2#get:foo (param $0 i32) (result i32) (local $1 i32) @@ -2209,7 +2251,7 @@ i32.const 0 call $class-implements/D#constructor global.set $class-implements/d - block $__inlined_func$class-implements/D#foo@override$163 (result i32) + block $__inlined_func$class-implements/D#foo@override$175 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/d local.tee $0 @@ -2221,7 +2263,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$163 + br_if $__inlined_func$class-implements/D#foo@override$175 drop i32.const 3 end @@ -2268,7 +2310,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $class-implements/e - block $__inlined_func$class-implements/D#foo@override$165 (result i32) + block $__inlined_func$class-implements/D#foo@override$177 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/e local.tee $0 @@ -2280,7 +2322,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$165 + br_if $__inlined_func$class-implements/D#foo@override$177 drop i32.const 3 end @@ -2301,7 +2343,7 @@ i32.store call $class-implements/F#constructor global.set $class-implements/g - block $__inlined_func$class-implements/D#foo@override$166 (result i32) + block $__inlined_func$class-implements/D#foo@override$178 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/g local.tee $0 @@ -2313,7 +2355,7 @@ i32.load i32.const 11 i32.eq - br_if $__inlined_func$class-implements/D#foo@override$166 + br_if $__inlined_func$class-implements/D#foo@override$178 drop i32.const 3 end @@ -2333,7 +2375,7 @@ global.get $class-implements/h local.tee $0 i32.store - block $__inlined_func$class-implements/I#foo@override$167 + block $__inlined_func$class-implements/I#foo@override$179 block $default2 block $case3 block $case2 @@ -2349,19 +2391,19 @@ end i32.const 4 local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + br $__inlined_func$class-implements/I#foo@override$179 end i32.const 1 local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + br $__inlined_func$class-implements/I#foo@override$179 end i32.const 2 local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + br $__inlined_func$class-implements/I#foo@override$179 end i32.const 3 local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + br $__inlined_func$class-implements/I#foo@override$179 end unreachable end @@ -2410,7 +2452,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$class-implements/J#foo@override$169 + block $__inlined_func$class-implements/J#foo@override$181 block $default3 block $case34 block $case25 @@ -2428,15 +2470,15 @@ end i32.const 4 local.set $0 - br $__inlined_func$class-implements/J#foo@override$169 + br $__inlined_func$class-implements/J#foo@override$181 end i32.const 3 local.set $0 - br $__inlined_func$class-implements/J#foo@override$169 + br $__inlined_func$class-implements/J#foo@override$181 end i32.const 1 local.set $0 - br $__inlined_func$class-implements/J#foo@override$169 + br $__inlined_func$class-implements/J#foo@override$181 end unreachable end @@ -2553,9 +2595,28 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 5 i32.store + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2660,9 +2721,28 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 7 i32.store + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2838,9 +2918,28 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 9 i32.store offset=4 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2945,9 +3044,28 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 11 i32.store offset=4 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index e8f373491e..c1d457db2f 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -2663,6 +2663,53 @@ local.get $3 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -2696,32 +2743,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -2801,19 +2823,46 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $class/GenericInitializer#constructor (param $this i32) (result i32) + (func $class/GenericInitializer#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 - i32.store offset=8 + i32.const 0 + call $~lib/array/Array#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $class/GenericInitializer#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class/GenericInitializer#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -2840,19 +2889,11 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $class/GenericInitializer#set:foo + call $class/GenericInitializer#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 710aef17f0..15c2a269a1 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -109,7 +109,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 + block $__inlined_func$~lib/rt/itcms/Object#unlink$140 local.get $0 i32.load offset=4 i32.const -4 @@ -133,7 +133,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 + br $__inlined_func$~lib/rt/itcms/Object#unlink$140 end local.get $0 i32.load offset=8 @@ -1599,22 +1599,19 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1568 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 4 i32.const 5 call $~lib/rt/itcms/__new @@ -1631,7 +1628,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1568 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -1657,95 +1654,142 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1568 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store + block $__inlined_func$~lib/array/Array#constructor (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 32 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + br $__inlined_func$~lib/array/Array#constructor + end + br $folding-inner1 + end + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 - call $~lib/array/Array#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $1 - local.get $2 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 32 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/array/Array#set:buffer - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 5ab44a6260..cdb04d8ae7 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -2508,6 +2508,29 @@ unreachable end ) + (func $constructor/EmptyCtorWithFieldInit#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $constructor/EmptyCtorWithFieldInit#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/EmptyCtorWithFieldInit#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2534,8 +2557,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $constructor/EmptyCtorWithFieldInit#set:a + call $constructor/EmptyCtorWithFieldInit#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2544,6 +2566,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $constructor/EmptyCtorWithFieldNoInit#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $constructor/EmptyCtorWithFieldNoInit#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/EmptyCtorWithFieldNoInit#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2570,8 +2615,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $constructor/EmptyCtorWithFieldNoInit#set:a + call $constructor/EmptyCtorWithFieldNoInit#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2580,6 +2624,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $constructor/EmptyCtorWithFieldAccess#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $constructor/EmptyCtorWithFieldAccess#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/EmptyCtorWithFieldAccess#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2606,8 +2673,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $constructor/EmptyCtorWithFieldAccess#set:a + call $constructor/EmptyCtorWithFieldAccess#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2662,6 +2728,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $constructor/JustFieldInit#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $constructor/JustFieldInit#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/JustFieldInit#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2698,8 +2787,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $constructor/JustFieldInit#set:a + call $constructor/JustFieldInit#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2708,6 +2796,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $constructor/JustFieldNoInit#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $constructor/JustFieldNoInit#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/JustFieldNoInit#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2744,8 +2855,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $constructor/JustFieldNoInit#set:a + call $constructor/JustFieldNoInit#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2754,19 +2864,53 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $constructor/CtorFieldInitWithoutConstructor#constructor (param $this i32) (result i32) + (func $constructor/CtorFieldInitWithoutConstructor#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $1 + i32.store + local.get $1 + i32.const 10 + call $constructor/CtorFieldInitWithoutConstructor#set:a + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $constructor/CtorFieldInitWithoutConstructor#get:a + call $constructor/CtorFieldInitWithoutConstructor#set:b + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $constructor/CtorFieldInitWithoutConstructor#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -2793,43 +2937,62 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 10 - call $constructor/CtorFieldInitWithoutConstructor#set:a + call $constructor/CtorFieldInitWithoutConstructor#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $constructor/CtorFieldInitOrder#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 - call $constructor/CtorFieldInitWithoutConstructor#get:a - call $constructor/CtorFieldInitWithoutConstructor#set:b + call $constructor/CtorFieldInitOrder#get:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $constructor/CtorFieldInitOrder#get:b + i32.add + call $constructor/CtorFieldInitOrder#set:c + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $constructor/CtorFieldInitOrder#constructor (param $this i32) (param $a i32) (param $b i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if @@ -2862,22 +3025,7 @@ local.get $3 i32.store offset=4 local.get $3 - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $constructor/CtorFieldInitOrder#get:a - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $constructor/CtorFieldInitOrder#get:b - i32.add - call $constructor/CtorFieldInitOrder#set:c + call $constructor/CtorFieldInitOrder#constructor|default local.get $a i32.const 1 i32.eq @@ -2959,7 +3107,7 @@ local.get $this local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $3 diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index ca81fa3733..bd906bd4e0 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func)) (type $2 (func (param i32 i32))) (type $3 (func (result i32))) (type $4 (func (param i32 i32) (result i32))) @@ -181,7 +181,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$155 local.get $1 i32.load offset=4 i32.const -4 @@ -205,7 +205,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$155 end local.get $1 i32.load offset=8 @@ -1663,11 +1663,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1711,7 +1711,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1735,7 +1735,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1747,13 +1747,11 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store - local.get $1 + call $constructor/EmptyCtorWithFieldInit#constructor|default + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1766,7 +1764,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1778,13 +1776,11 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $1 + call $constructor/EmptyCtorWithFieldNoInit#constructor|default + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1797,7 +1793,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1809,19 +1805,17 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $1 + call $constructor/EmptyCtorWithFieldNoInit#constructor|default + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1834,7 +1828,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1867,7 +1861,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1891,8 +1885,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 1 - i32.store + call $constructor/EmptyCtorWithFieldInit#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1906,7 +1899,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1930,8 +1923,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store + call $constructor/EmptyCtorWithFieldNoInit#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -1945,7 +1937,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1966,7 +1958,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2018,21 +2010,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 12 i32.const 15 call $~lib/rt/itcms/__new @@ -2055,14 +2044,29 @@ local.get $1 i32.store offset=4 local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 local.get $1 - i32.store offset=8 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 local.get $1 i32.load offset=4 local.set $2 local.get $0 local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 local.get $2 local.get $1 @@ -2070,6 +2074,10 @@ i32.add i32.store local.get $0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 @@ -2115,7 +2123,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -2181,11 +2189,10 @@ call $~lib/builtins/abort unreachable ) - (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) - (local $0 i32) + (func $constructor/EmptyCtorWithFieldInit#constructor|default (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2200,48 +2207,131 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 + local.tee $1 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 8 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 local.get $1 local.get $0 - call $~lib/object/Object#constructor - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 + i32.const 1 i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $constructor/EmptyCtorWithFieldNoInit#constructor|default (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 local.get $0 - i32.store offset=8 - local.get $0 + i32.store local.get $0 - i32.load - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 0 + i32.store + local.get $1 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + ) + (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 8 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 10 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $1 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 79b3b9b121..827e6c16b8 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32 i32))) (type $1 (func (param i32) (result i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) (type $4 (func)) (type $5 (func (param i32 i32 i32))) (type $6 (func (param i32 i32 i32 i32))) @@ -2512,6 +2512,29 @@ unreachable end ) + (func $duplicate-fields/A#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/A#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/A#constructor (param $this i32) (param $bar i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2538,8 +2561,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $duplicate-fields/A#set:bar + call $duplicate-fields/A#constructor|default local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -2556,6 +2578,29 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $duplicate-fields/B#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/B#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/B#constructor (param $this i32) (param $bar i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2582,8 +2627,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $duplicate-fields/B#set:bar + call $duplicate-fields/B#constructor|default global.get $~lib/memory/__stack_pointer local.get $this local.set $2 @@ -2611,6 +2655,29 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $duplicate-fields/A2#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/A2#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/A2#constructor (param $this i32) (param $bar i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2640,8 +2707,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $duplicate-fields/A2#set:bar + call $duplicate-fields/A2#constructor|default local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -2663,6 +2729,29 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $duplicate-fields/B2#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/B2#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/B2#constructor (param $this i32) (param $bar i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2692,8 +2781,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $duplicate-fields/B2#set:bar + call $duplicate-fields/B2#constructor|default global.get $~lib/memory/__stack_pointer local.get $this local.set $2 @@ -2731,6 +2819,29 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $duplicate-fields/Foo#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/Foo#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/Foo#constructor (param $this i32) (param $foo i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2757,8 +2868,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $duplicate-fields/Foo#set:foo + call $duplicate-fields/Foo#constructor|default local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -2775,6 +2885,37 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $duplicate-fields/A3#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/A3#set:prot + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/A3#set:pub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $duplicate-fields/A3#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2811,23 +2952,45 @@ local.get $1 i32.store offset=4 local.get $1 + call $duplicate-fields/A3#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $duplicate-fields/B3#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer i32.const 0 - call $duplicate-fields/A3#set:prot + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 - call $duplicate-fields/A3#set:pub + call $duplicate-fields/B3#set:prot local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $duplicate-fields/B3#set:pub + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $duplicate-fields/B3#constructor (param $this i32) (result i32) (local $1 i32) @@ -2865,16 +3028,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $duplicate-fields/B3#set:prot - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $duplicate-fields/B3#set:pub + call $duplicate-fields/B3#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index adac54bdc2..70dae5b988 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func)) (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) @@ -116,7 +116,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$136 + block $__inlined_func$~lib/rt/itcms/Object#unlink$135 local.get $0 i32.load offset=4 i32.const -4 @@ -140,7 +140,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$136 + br $__inlined_func$~lib/rt/itcms/Object#unlink$135 end local.get $0 i32.load offset=8 @@ -1724,16 +1724,16 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $1 + call $duplicate-fields/A#constructor|default + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1756,19 +1756,17 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $2 + call $duplicate-fields/A#constructor|default + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 10 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1822,19 +1820,17 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $0 + call $duplicate-fields/A#constructor|default + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1866,8 +1862,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - call $duplicate-fields/A2#set:bar + call $duplicate-fields/A2#constructor|default global.get $~lib/memory/__stack_pointer local.set $2 global.get $~lib/memory/__stack_pointer @@ -1905,8 +1900,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - call $duplicate-fields/A2#set:bar + call $duplicate-fields/A2#constructor|default global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2040,14 +2034,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 + call $duplicate-fields/A3#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2059,14 +2046,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 + call $duplicate-fields/A3#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2084,4 +2064,106 @@ call $~lib/builtins/abort unreachable ) + (func $duplicate-fields/A#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $duplicate-fields/A2#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $duplicate-fields/A2#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $duplicate-fields/A3#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.lt_s + if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) ) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 42df283bce..2845f24b81 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -2607,6 +2607,45 @@ unreachable end ) + (func $extends-baseaggregate/A1#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.const 0 + call $extends-baseaggregate/A1#set:padding0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.const 0 + call $extends-baseaggregate/A1#set:padding1 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $extends-baseaggregate/A1#set:c1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $extends-baseaggregate/A1#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2643,24 +2682,7 @@ local.get $1 i32.store offset=4 local.get $1 - f64.const 0 - call $extends-baseaggregate/A1#set:padding0 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - call $extends-baseaggregate/A1#set:padding1 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $extends-baseaggregate/A1#set:c1 + call $extends-baseaggregate/A1#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 83ddca752b..a6556e63ef 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -120,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $0 i32.load offset=4 i32.const -4 @@ -144,7 +144,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $0 i32.load offset=8 @@ -1861,18 +1861,33 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $5 + i32.store local.get $5 f64.const 0 f64.store - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $5 - i32.store offset=4 + i32.store local.get $5 f64.const 0 f64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $5 - i32.store offset=4 + i32.store local.get $5 i32.const 0 i32.store offset=16 @@ -1881,6 +1896,10 @@ i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1953,7 +1972,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$136 + block $__inlined_func$~lib/rt/itcms/__renew$138 i32.const 1073741820 local.get $1 i32.const 1 @@ -1996,7 +2015,7 @@ i32.store offset=16 local.get $1 local.set $0 - br $__inlined_func$~lib/rt/itcms/__renew$136 + br $__inlined_func$~lib/rt/itcms/__renew$138 end local.get $2 local.get $6 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e0074d457f..aeb9d7f254 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -2437,6 +2437,29 @@ unreachable end ) + (func $extends-recursive/Parent#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $extends-recursive/Parent#set:child + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $extends-recursive/Parent#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2473,8 +2496,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $extends-recursive/Parent#set:child + call $extends-recursive/Parent#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index d1bc04b223..a39ca583d0 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -115,7 +115,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$113 + block $__inlined_func$~lib/rt/itcms/Object#unlink$114 local.get $0 i32.load offset=4 i32.const -4 @@ -139,7 +139,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$113 + br $__inlined_func$~lib/rt/itcms/Object#unlink$114 end local.get $0 i32.load offset=8 @@ -1636,10 +1636,10 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store offset=4 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1648,13 +1648,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1665,16 +1665,35 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + i32.store local.get $0 i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index d94296464e..076361686f 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -3092,6 +3092,29 @@ unreachable end ) + (func $field-initialization/Value_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $field-initialization/Value_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Value_Init#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3128,8 +3151,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $field-initialization/Value_Init#set:a + call $field-initialization/Value_Init#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3138,6 +3160,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Value#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Value#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Value#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3174,8 +3219,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Value#set:a + call $field-initialization/Value#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3184,19 +3228,46 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Ref_Init#constructor (param $this i32) (result i32) + (func $field-initialization/Ref_Init#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 - i32.store offset=8 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Ref_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Ref_Init#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -3223,36 +3294,55 @@ local.get $1 i32.store offset=4 local.get $1 + call $field-initialization/Ref_Init#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $field-initialization/Nullable_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 - call $field-initialization/Ref_Init#set:a - local.get $this - local.set $1 + call $field-initialization/Nullable_Init#set:a global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $field-initialization/Nullable_Init#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if @@ -3279,22 +3369,37 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Nullable_Init#constructor|default + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $field-initialization/Nullable_Init#set:a + ) + (func $field-initialization/Nullable#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Nullable#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $field-initialization/Nullable#constructor (param $this i32) (result i32) (local $1 i32) @@ -3332,8 +3437,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Nullable#set:a + call $field-initialization/Nullable#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3342,6 +3446,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Value_Ctor#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Value_Ctor#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Value_Ctor#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3368,8 +3495,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Value_Ctor#set:a + call $field-initialization/Value_Ctor#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3378,6 +3504,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Value_Init_Ctor#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $field-initialization/Value_Init_Ctor#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Value_Init_Ctor#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3404,8 +3553,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - call $field-initialization/Value_Init_Ctor#set:a + call $field-initialization/Value_Init_Ctor#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3414,6 +3562,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Value_Ctor_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Value_Ctor_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Value_Ctor_Init#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3440,8 +3611,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Value_Ctor_Init#set:a + call $field-initialization/Value_Ctor_Init#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3458,19 +3628,46 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Ref_Init_Ctor#constructor (param $this i32) (result i32) + (func $field-initialization/Ref_Init_Ctor#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 - i32.store offset=8 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Ref_Init_Ctor#set:a + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Ref_Init_Ctor#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -3487,22 +3684,37 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Ref_Init_Ctor#constructor|default + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $field-initialization/Ref_Init_Ctor#set:a + ) + (func $field-initialization/Ref_Ctor_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Ref_Ctor_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $field-initialization/Ref_Ctor_Init#constructor (param $this i32) (result i32) (local $1 i32) @@ -3533,8 +3745,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Ref_Ctor_Init#set:a + call $field-initialization/Ref_Ctor_Init#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3597,12 +3808,70 @@ local.get $this local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $field-initialization/Nullable_Ctor#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Nullable_Ctor#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Nullable_Ctor#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Nullable_Ctor#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $field-initialization/Nullable_Ctor#constructor (param $this i32) (result i32) + (func $field-initialization/Nullable_Init_Ctor#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3613,44 +3882,35 @@ i64.const 0 i64.store local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 - call $field-initialization/Nullable_Ctor#set:a - local.get $this + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Nullable_Init_Ctor#set:a + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $field-initialization/Nullable_Init_Ctor#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if @@ -3667,22 +3927,37 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor + call $field-initialization/Nullable_Init_Ctor#constructor|default + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - call $field-initialization/Nullable_Init_Ctor#set:a + ) + (func $field-initialization/Nullable_Ctor_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Nullable_Ctor_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $field-initialization/Nullable_Ctor_Init#constructor (param $this i32) (result i32) (local $1 i32) @@ -3713,8 +3988,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/Nullable_Ctor_Init#set:a + call $field-initialization/Nullable_Ctor_Init#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3738,19 +4012,46 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Inherit_Base#constructor (param $this i32) (result i32) + (func $field-initialization/Inherit_Base#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 - i32.store offset=8 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Inherit_Base#set:a + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Inherit_Base#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -3777,19 +4078,11 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $field-initialization/Inherit_Base#set:a + call $field-initialization/Inherit_Base#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -3870,6 +4163,37 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/SomeObject#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/SomeObject#set:a + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/SomeObject#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/SomeObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3906,16 +4230,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/SomeObject#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $field-initialization/SomeObject#set:b + call $field-initialization/SomeObject#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4020,6 +4335,29 @@ local.get $3 return ) + (func $field-initialization/SomeOtherObject#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/SomeOtherObject#set:c + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/SomeOtherObject#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4056,8 +4394,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $field-initialization/SomeOtherObject#set:c + call $field-initialization/SomeOtherObject#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4066,6 +4403,29 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $field-initialization/Flow_Balanced#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Flow_Balanced#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $field-initialization/Flow_Balanced#constructor (param $this i32) (param $cond i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -4095,8 +4455,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $field-initialization/Flow_Balanced#set:a + call $field-initialization/Flow_Balanced#constructor|default local.get $cond if local.get $this @@ -4139,6 +4498,59 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $field-initialization/Ref_Init_InlineCtor#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $field-initialization/Ref_Init_InlineCtor#set:a + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Ref_InlineCtor_Init#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $field-initialization/Ref_InlineCtor_Init#set:a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $start:field-initialization (local $0 i32) (local $1 i32) @@ -5102,15 +5514,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 - call $field-initialization/Ref_Init_InlineCtor#set:a + call $field-initialization/Ref_Init_InlineCtor#constructor|default local.get $30 local.tee $31 i32.store offset=136 @@ -5151,8 +5555,7 @@ local.get $34 i32.store offset=4 local.get $34 - i32.const 0 - call $field-initialization/Ref_InlineCtor_Init#set:a + call $field-initialization/Ref_InlineCtor_Init#constructor|default local.get $32 local.set $34 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index de29586aa0..897102caa3 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func)) (type $2 (func (param i32 i32))) (type $3 (func (result i32))) (type $4 (func (param i32 i32) (result i32))) @@ -120,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$223 + block $__inlined_func$~lib/rt/itcms/Object#unlink$218 local.get $0 i32.load offset=4 i32.const -4 @@ -144,7 +144,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$223 + br $__inlined_func$~lib/rt/itcms/Object#unlink$218 end local.get $0 i32.load offset=8 @@ -1688,10 +1688,10 @@ (func $~start call $start:field-initialization ) - (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) + (func $field-initialization/Value_Init#constructor|default (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1707,38 +1707,80 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 - i32.store offset=8 + i32.store + local.get $1 local.get $0 - i32.eqz + i32.store + local.get $0 + i32.const 1 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Value#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s if - local.get $1 - i32.const 4 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store local.get $1 local.get $0 - call $~lib/object/Object#constructor - local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Ref_Init#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 local.get $0 - i32.store offset=4 + i32.store call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store @@ -1746,12 +1788,46 @@ local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + ) + (func $field-initialization/Nullable#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) + (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1776,8 +1852,8 @@ i32.eqz if local.get $1 - i32.const 8 - i32.const 21 + i32.const 4 + i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1795,23 +1871,95 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + local.get $1 + i32.const 8 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1928,7 +2076,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$118 + block $__inlined_func$~lib/util/string/compareImpl$113 loop $while-continue|1 local.get $0 local.tee $3 @@ -1948,7 +2096,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$118 + br_if $__inlined_func$~lib/util/string/compareImpl$113 local.get $2 i32.const 2 i32.add @@ -1984,50 +2132,71 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 12 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 + local.get $1 + local.get $0 + call $field-initialization/SomeObject#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 12 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - local.get $0 - call $field-initialization/SomeObject#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $start:field-initialization (local $0 i32) @@ -2111,8 +2280,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - i32.store + call $field-initialization/Value_Init#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2167,8 +2335,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store + call $field-initialization/Value#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2191,7 +2358,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2203,9 +2370,6 @@ i64.const 0 i64.store local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 i32.const 4 i32.const 6 call $~lib/rt/itcms/__new @@ -2223,19 +2387,10 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2257,7 +2412,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2269,9 +2424,6 @@ i64.const 0 i64.store local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 i32.const 4 i32.const 7 call $~lib/rt/itcms/__new @@ -2289,19 +2441,10 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2353,11 +2496,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2398,13 +2537,11 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $2 + call $field-initialization/Value#constructor|default + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2444,13 +2581,11 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 - i32.const 1 - i32.store - local.get $2 + call $field-initialization/Value_Init#constructor|default + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2492,19 +2627,17 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $2 + call $field-initialization/Value#constructor|default + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2528,7 +2661,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2540,9 +2673,6 @@ i64.const 0 i64.store local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 i32.const 4 i32.const 12 call $~lib/rt/itcms/__new @@ -2551,19 +2681,10 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2609,11 +2730,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -2737,11 +2854,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2764,7 +2877,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2776,9 +2889,6 @@ i64.const 0 i64.store local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 i32.const 4 i32.const 16 call $~lib/rt/itcms/__new @@ -2787,19 +2897,10 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2845,11 +2946,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3424,11 +3521,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3474,17 +3567,8 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=80 local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $field-initialization/Ref_Init#constructor|default local.get $0 local.get $1 i32.store offset=136 @@ -3513,11 +3597,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $field-initialization/Nullable#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 551564caf0..79215e9b2c 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -2536,21 +2536,50 @@ unreachable end ) - (func $field/NoStaticConflict#constructor (param $this i32) (result i32) + (func $field/NoStaticConflict#constructor|default (param $this i32) (local $1 i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 i32.const 0 - i32.store offset=8 + i32.const 2 + i32.const 5 + i32.const 432 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $field/NoStaticConflict#set:a + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $field/NoStaticConflict#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -2563,38 +2592,28 @@ end global.get $~lib/memory/__stack_pointer local.get $this - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 call $~lib/object/Object#constructor local.tee $this i32.store local.get $this - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 2 - i32.const 5 - i32.const 432 - call $~lib/rt/__newArray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $field/NoStaticConflict#set:a + local.get $1 + call $field/NoStaticConflict#constructor|default local.get $this - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) (func $field/testNoStaticConflict (local $inst i32) diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 0401d3159f..91c905a367 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -103,7 +103,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 local.get $0 i32.load offset=4 i32.const -4 @@ -127,7 +127,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 end local.get $0 i32.load offset=8 @@ -1638,7 +1638,7 @@ i64.const 0 i64.store local.get $1 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1650,9 +1650,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -1695,6 +1692,21 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1504 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + local.get $0 + i32.store + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1740,7 +1752,7 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $2 i32.store @@ -1748,7 +1760,11 @@ local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index cdc37e9784..2e715e880e 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2576,6 +2576,29 @@ local.get $8 return ) + (func $infer-generic/Ref#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $infer-generic/Ref#set:x + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $infer-generic/Ref#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2612,8 +2635,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $infer-generic/Ref#set:x + call $infer-generic/Ref#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 81329a11e9..6eb61975a6 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -144,7 +144,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $1 i32.load offset=4 i32.const -4 @@ -168,7 +168,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $1 i32.load offset=8 @@ -1831,9 +1831,28 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $0 + i32.store local.get $0 i32.const 0 i32.store + local.get $3 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 68a7fd21cd..01863b7f97 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32) (result i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func)) (type $4 (func (param i32 i32) (result i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32))) @@ -2666,6 +2666,68 @@ unreachable end ) + (func $inlining/Baz#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $inlining/Baz#set:a + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $inlining/Baz#set:b + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $inlining/Bar#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 3 + call $inlining/Bar#set:d + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $inlining/Bar#set:e + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $inlining/test_ctor (local $this i32) (local $f i32) @@ -2705,16 +2767,7 @@ local.get $5 i32.store offset=4 local.get $5 - i32.const 3 - call $inlining/Bar#set:d - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Bar#set:e + call $inlining/Bar#constructor|default global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $this @@ -2738,16 +2791,7 @@ local.get $5 i32.store offset=4 local.get $5 - i32.const 1 - call $inlining/Baz#set:a - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Baz#set:b + call $inlining/Baz#constructor|default local.get $this|2 local.set $5 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index f695ea475d..32da6ff9a4 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -130,7 +130,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$124 + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 local.get $1 i32.load offset=4 i32.const -4 @@ -154,7 +154,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$124 + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 end local.get $1 i32.load offset=8 @@ -1548,11 +1548,10 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1556 - i32.lt_s - br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.ge_s + if global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1608,145 +1607,187 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1556 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 local.get $1 - i32.const 8 - i32.const 7 + i32.const 16 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $3 - local.get $0 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load - i32.const 1 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 - i32.const 1056 - i32.const 96 + i32.store + local.get $2 + local.get $0 + i32.store + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $0 i32.const 0 - i32.const 1056 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if + i32.store offset=12 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 i32.const 0 - i32.const 1056 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 4 - i32.ne - if + i32.store + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $0 i32.const 0 - i32.const 1056 - i32.const 99 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 34352 i32.const 34400 diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 8d55faf3bc..a036ab02fc 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -2411,19 +2411,44 @@ unreachable end ) - (func $issues/1095/Foo#constructor (param $this i32) (result i32) + (func $issues/1095/Foo#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $1 + i32.store + local.get $1 + i32.const 432 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $issues/1095/Foo#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/1095/Foo#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this i32.eqz if @@ -2450,17 +2475,11 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 432 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $issues/1095/Foo#set:bar + call $issues/1095/Foo#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 27b353fae1..7b8b16bfad 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -106,7 +106,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$115 + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 local.get $0 i32.load offset=4 i32.const -4 @@ -130,7 +130,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$115 + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 end local.get $0 i32.load offset=8 @@ -1669,7 +1669,7 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace local.get $0 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1681,9 +1681,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -1726,13 +1723,32 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1672 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + local.get $1 i32.const 1456 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1456 call $issues/1095/Foo#set:bar global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 73eec5c752..9c30db401d 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -2444,6 +2444,37 @@ unreachable end ) + (func $issues/1225/X#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $issues/1225/X#set:normal + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $issues/1225/X#set:viaThis + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $issues/1225/X#constructor (param $this i32) (param $x i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2481,16 +2512,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $issues/1225/X#set:normal - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - call $issues/1225/X#set:viaThis + call $issues/1225/X#constructor|default local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index dcd7eef4ba..b92ffd6b20 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -126,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $1 i32.load offset=4 i32.const -4 @@ -150,7 +150,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 end local.get $1 i32.load offset=8 @@ -1415,162 +1415,185 @@ (func $~start (local $0 i32) (local $1 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34280 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load offset=8 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store - local.get $0 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - global.set $issues/1225/x - call $issues/1225/normal - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $issues/1225/viaThis - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 19 + block $__inlined_func$start:issues/1225$1 + memory.size + i32.const 16 + i32.shl + i32.const 34280 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $issues/1225/x - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $issues/1225/x + call $issues/1225/normal + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $issues/1225/viaThis + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $issues/1225/x global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - call $~lib/rt/itcms/step - drop - br $while-continue|0 + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if call $~lib/rt/itcms/step drop - br $while-continue|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$start:issues/1225$1 end + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold ) (func $issues/1225/normal (result i32) (local $0 i32) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index bec13bbd0b..9ead4e132f 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -2522,6 +2522,53 @@ unreachable end ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -2555,32 +2602,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -2660,6 +2682,29 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) + (func $issues/1699/MultiAssignmentTest#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 2 + call $issues/1699/MultiAssignmentTest#set:test + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $issues/1699/MultiAssignmentTest#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2696,8 +2741,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 2 - call $issues/1699/MultiAssignmentTest#set:test + call $issues/1699/MultiAssignmentTest#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 7678c94ffd..50467331fe 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -113,7 +113,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$146 + block $__inlined_func$~lib/rt/itcms/Object#unlink$150 local.get $0 i32.load offset=4 i32.const -4 @@ -137,7 +137,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$146 + br $__inlined_func$~lib/rt/itcms/Object#unlink$150 end local.get $0 i32.load offset=8 @@ -1642,24 +1642,24 @@ i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.const 28 memory.fill - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 i64.const 0 @@ -1674,8 +1674,24 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $2 i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $2 + i32.store local.get $2 i32.const 0 i32.store @@ -1685,23 +1701,27 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new @@ -1746,13 +1766,12 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 call $issues/1699/MultiAssignmentTest#constructor @@ -1790,7 +1809,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -2023,10 +2042,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2035,13 +2054,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2052,15 +2071,34 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store local.get $0 i32.const 2 i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2155,7 +2193,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$145 + block $__inlined_func$~lib/rt/itcms/__renew$149 i32.const 1073741820 local.get $4 i32.const 1 @@ -2198,7 +2236,7 @@ i32.store offset=16 local.get $4 local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$145 + br $__inlined_func$~lib/rt/itcms/__renew$149 end local.get $5 local.get $7 diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 63522c906a..a35ffdc50f 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -2334,6 +2334,29 @@ unreachable end ) + (func $issues/2322/lib/Wrapper#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $issues/2322/lib/Wrapper#set:v + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $issues/2322/lib/Wrapper#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2370,8 +2393,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $issues/2322/lib/Wrapper#set:v + call $issues/2322/lib/Wrapper#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 115d5e9f2e..7532d2c40e 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -116,7 +116,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$112 + block $__inlined_func$~lib/rt/itcms/Object#unlink$114 local.get $1 i32.load offset=4 i32.const -4 @@ -140,7 +140,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$112 + br $__inlined_func$~lib/rt/itcms/Object#unlink$114 end local.get $1 i32.load offset=8 @@ -1627,10 +1627,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1639,13 +1639,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1656,15 +1656,34 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1464 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store local.get $0 i32.const 0 i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index e66ee803a9..7eef4e72c4 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -2474,6 +2474,14 @@ local.get $baz i32.store offset=4 ) + (func $object-literal/Unmanaged#constructor|default (param $this i32) + local.get $this + i32.const 0 + call $object-literal/Unmanaged#set:bar + local.get $this + i32.const 0 + call $object-literal/Unmanaged#set:baz + ) (func $object-literal/Unmanaged#constructor (param $this i32) (result i32) local.get $this i32.eqz @@ -2483,11 +2491,7 @@ local.set $this end local.get $this - i32.const 0 - call $object-literal/Unmanaged#set:bar - local.get $this - i32.const 0 - call $object-literal/Unmanaged#set:baz + call $object-literal/Unmanaged#constructor|default local.get $this ) (func $object-literal/Unmanaged#get:bar (param $this i32) (result i32) @@ -3008,6 +3012,37 @@ unreachable end ) + (func $object-literal/Managed#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $object-literal/Managed#set:bar + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $object-literal/Managed#set:baz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $object-literal/Managed#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3044,16 +3079,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $object-literal/Managed#set:bar - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $object-literal/Managed#set:baz + call $object-literal/Managed#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3424,41 +3450,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $object-literal/OmittedTypes#constructor (param $this i32) (result i32) + (func $object-literal/OmittedTypes#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 65 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this + i32.const 0 i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:int32 @@ -3466,7 +3472,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:uint32 @@ -3474,7 +3480,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $object-literal/OmittedTypes#set:int64 @@ -3482,7 +3488,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i64.const 0 call $object-literal/OmittedTypes#set:uint64 @@ -3490,7 +3496,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f32.const 0 call $object-literal/OmittedTypes#set:float32 @@ -3498,7 +3504,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 call $object-literal/OmittedTypes#set:float64 @@ -3506,7 +3512,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:int8 @@ -3514,7 +3520,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:uint8 @@ -3522,7 +3528,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:int16 @@ -3530,7 +3536,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:uint16 @@ -3538,7 +3544,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:intsize @@ -3546,7 +3552,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:uintsize @@ -3554,7 +3560,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 call $object-literal/OmittedTypes#set:alias @@ -3562,10 +3568,52 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedTypes#set:isTrue + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/OmittedTypes#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 65 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $object-literal/OmittedTypes#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3849,6 +3897,45 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $object-literal/MixedOmitted#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $object-literal/MixedOmitted#set:simpleType + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $object-literal/MixedOmitted#set:complexType + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.const 0 + call $object-literal/MixedOmitted#set:anotherSimpleType + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $object-literal/MixedOmitted#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3885,24 +3972,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $object-literal/MixedOmitted#set:simpleType - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $object-literal/MixedOmitted#set:complexType - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - call $object-literal/MixedOmitted#set:anotherSimpleType + call $object-literal/MixedOmitted#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3993,70 +4063,47 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $object-literal/OmittedFoo#constructor (param $this i32) (result i32) + (func $object-literal/OmittedFoo#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - global.get $~lib/memory/__stack_pointer local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/object/Object#constructor - local.tee $this i32.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 i32.const 640 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/OmittedFoo#set:bar local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 672 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/OmittedFoo#set:baz local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:quux @@ -4064,7 +4111,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:quuz @@ -4072,7 +4119,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:corge @@ -4080,7 +4127,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:grault @@ -4088,7 +4135,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:garply @@ -4096,7 +4143,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:waldo @@ -4104,7 +4151,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $object-literal/OmittedFoo#set:fred @@ -4112,14 +4159,56 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const -1 call $object-literal/OmittedFoo#set:qux + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/OmittedFoo#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $object-literal/OmittedFoo#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 540986a9d3..c2de2b3e02 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -71,7 +71,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$203 + block $__inlined_func$~lib/rt/itcms/Object#unlink$209 local.get $0 i32.load offset=4 i32.const -4 @@ -95,7 +95,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$203 + br $__inlined_func$~lib/rt/itcms/Object#unlink$209 end local.get $0 i32.load offset=8 @@ -1829,7 +1829,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$83 + block $__inlined_func$~lib/util/string/compareImpl$84 loop $while-continue|1 local.get $0 local.tee $3 @@ -1849,7 +1849,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$83 + br_if $__inlined_func$~lib/util/string/compareImpl$84 local.get $2 i32.const 2 i32.add @@ -2410,12 +2410,27 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.store offset=4 @@ -2423,6 +2438,10 @@ i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2565,7 +2584,7 @@ i32.const 1 i32.shl local.set $4 - block $__inlined_func$~lib/string/String#substring$208 + block $__inlined_func$~lib/string/String#substring$216 local.get $1 i32.const 0 local.get $1 @@ -2586,7 +2605,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1568 local.set $0 - br $__inlined_func$~lib/string/String#substring$208 + br $__inlined_func$~lib/string/String#substring$216 end local.get $4 i32.eqz @@ -2603,7 +2622,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1056 local.set $0 - br $__inlined_func$~lib/string/String#substring$208 + br $__inlined_func$~lib/string/String#substring$216 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -2680,6 +2699,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2689,160 +2709,180 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 65 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $2 + local.get $1 i32.store offset=4 + local.get $2 local.get $1 - local.get $0 call $~lib/object/Object#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i64.const 0 i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 f32.const 0 f32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 f64.const 0 f64.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store8 offset=41 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store16 offset=42 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store16 offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 f64.const 0 f64.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store8 offset=64 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 f32.const 0 f32.store offset=24 - local.get $0 + local.get $1 f64.const 0 f64.store offset=32 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=40 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=41 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=42 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=44 - local.get $0 + local.get $1 i32.const 0 i32.store offset=48 - local.get $0 + local.get $1 i32.const 0 i32.store offset=52 - local.get $0 + local.get $1 f64.const 0 f64.store offset=56 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=64 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $object-literal/testOmittedTypes global.get $~lib/memory/__stack_pointer local.set $0 @@ -2876,12 +2916,27 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store local.get $1 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.store offset=4 @@ -2890,11 +2945,15 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2997,8 +3056,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3006,148 +3066,165 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $1 i32.const 40 i32.const 7 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $2 + local.get $1 i32.store offset=4 + local.get $2 local.get $1 - local.get $0 call $~lib/object/Object#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + local.get $1 + i32.store + local.get $2 i32.const 1664 - i32.store offset=8 - local.get $0 + i32.store offset=4 + local.get $1 i32.const 1664 i32.store - local.get $0 + local.get $1 i32.const 1664 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + i32.store global.get $~lib/memory/__stack_pointer i32.const 1696 - i32.store offset=8 - local.get $0 + i32.store offset=4 + local.get $1 i32.const 1696 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1696 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=20 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=28 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store + local.get $1 i32.const -1 i32.store offset=36 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 - local.get $0 + local.get $1 i32.const 0 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.store offset=28 - local.get $0 + local.get $1 i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $object-literal/testOmittedFoo i32.const 34516 global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 9c7b8ab2d7..b1a4d0f375 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -3184,6 +3184,29 @@ local.get $3 return ) + (func $resolve-access/Container#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i64.const 0 + call $resolve-access/Container#set:foo + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $resolve-access/Container#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3220,8 +3243,7 @@ local.get $1 i32.store offset=4 local.get $1 - i64.const 0 - call $resolve-access/Container#set:foo + call $resolve-access/Container#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 405880f946..da3f1df048 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -124,7 +124,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$143 + block $__inlined_func$~lib/rt/itcms/Object#unlink$145 local.get $0 i32.load offset=4 i32.const -4 @@ -148,7 +148,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$143 + br $__inlined_func$~lib/rt/itcms/Object#unlink$145 end local.get $0 i32.load offset=8 @@ -2212,10 +2212,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2224,13 +2224,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2241,15 +2241,34 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store local.get $0 i64.const 0 i64.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index a8ce8b0059..d9d18e020e 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -4360,6 +4360,45 @@ unreachable end ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -4390,24 +4429,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index e9e60b898b..8139978775 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -176,7 +176,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$150 + block $__inlined_func$~lib/rt/itcms/Object#unlink$152 local.get $0 i32.load offset=4 i32.const -4 @@ -200,7 +200,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$150 + br $__inlined_func$~lib/rt/itcms/Object#unlink$152 end local.get $0 i32.load offset=8 @@ -2989,100 +2989,122 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4832 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store local.get $2 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + local.get $2 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4832 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 i32.store + local.get $2 + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1073741820 + local.get $1 + i32.shr_u + i32.const 2 + i32.lt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $1 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 1073741820 - local.get $1 - i32.shr_u - i32.const 2 - i32.lt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $1 - i32.shl - local.tee $1 + i32.const 37632 + i32.const 37680 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) (local $3 i32) @@ -3312,7 +3334,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$97 + block $__inlined_func$~lib/util/string/compareImpl$98 loop $while-continue|1 local.get $0 local.tee $3 @@ -3332,7 +3354,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$97 + br_if $__inlined_func$~lib/util/string/compareImpl$98 local.get $2 i32.const 2 i32.add diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 7c13c3bb67..acbf679e55 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -2995,6 +2995,29 @@ local.get $3 return ) + (func $resolve-propertyaccess/Class#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 6 + call $resolve-propertyaccess/Class#set:instanceField + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $resolve-propertyaccess/Class#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3031,8 +3054,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 6 - call $resolve-propertyaccess/Class#set:instanceField + call $resolve-propertyaccess/Class#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index c2b15003a8..cd5a16be5a 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -157,7 +157,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 local.get $1 i32.load offset=4 i32.const -4 @@ -181,7 +181,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 end local.get $1 i32.load offset=8 @@ -2315,9 +2315,28 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3704 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + i32.store local.get $0 i32.const 6 i32.store + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index c08d881355..a27066852b 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -2458,6 +2458,53 @@ unreachable end ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -2491,32 +2538,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index c2b30c2ce8..2a019f0acf 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -108,7 +108,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$121 + block $__inlined_func$~lib/rt/itcms/Object#unlink$123 local.get $0 i32.load offset=4 i32.const -4 @@ -132,7 +132,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$121 + br $__inlined_func$~lib/rt/itcms/Object#unlink$123 end local.get $0 i32.load offset=8 @@ -1628,63 +1628,83 @@ i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $2 + local.get $1 i32.store offset=4 local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 400 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 local.get $2 + i32.store offset=12 local.get $1 + local.get $2 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 400 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 100 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1692,7 +1712,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $1 i32.store unreachable end diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 2071e914a1..c336422322 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -2366,6 +2366,29 @@ unreachable end ) + (func $rt/issue-2719/issue2719_T#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $rt/issue-2719/issue2719_T#set:v + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $rt/issue-2719/issue2719_T#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2402,8 +2425,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $rt/issue-2719/issue2719_T#set:v + call $rt/issue-2719/issue2719_T#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index a4b942f375..34e7cfadff 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -117,7 +117,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $1 i32.load offset=4 i32.const -4 @@ -141,7 +141,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 end local.get $1 i32.load offset=8 @@ -1739,10 +1739,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1751,13 +1751,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1768,15 +1768,34 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1528 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store local.get $0 i32.const 0 i32.store + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index bff2f09e20..ad3d534b8e 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -5,11 +5,11 @@ (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32) (result i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32 i32))) - (type $7 (func (param f32 f32) (result i32))) - (type $8 (func (param f64 f64) (result i32))) - (type $9 (func (param i32 i32 i32 i32 i32 i32))) - (type $10 (func (param i32))) + (type $6 (func (param i32))) + (type $7 (func (param i32 i32 i32 i32 i32))) + (type $8 (func (param f32 f32) (result i32))) + (type $9 (func (param f64 f64) (result i32))) + (type $10 (func (param i32 i32 i32 i32 i32 i32))) (type $11 (func)) (type $12 (func (param i64 i32) (result i32))) (type $13 (func (result f64))) @@ -4383,7 +4383,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.le_s if @@ -4415,7 +4415,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s if @@ -4463,7 +4463,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s if @@ -4532,7 +4532,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s if @@ -4557,7 +4557,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 31 i32.shr_u else @@ -4637,7 +4637,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.ge_s else @@ -4808,7 +4808,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.lt_s if @@ -4942,7 +4942,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.le_s if @@ -4974,7 +4974,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s if @@ -5022,7 +5022,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s if @@ -5091,7 +5091,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s if @@ -5116,7 +5116,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 31 i32.shr_u else @@ -5196,7 +5196,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.ge_s else @@ -5316,7 +5316,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.lt_s if @@ -10004,6 +10004,53 @@ unreachable end ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -10037,32 +10084,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -10178,6 +10200,45 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -10208,24 +10269,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 @@ -16053,6 +16097,37 @@ local.get $4 return ) + (func $std/array/Dim#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $std/array/Dim#set:height + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $std/array/Dim#set:width + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $std/array/Dim#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -16089,16 +16164,7 @@ local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $std/array/Dim#set:height - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $std/array/Dim#set:width + call $std/array/Dim#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16266,7 +16332,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s local.set $c @@ -16290,7 +16356,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s local.set $c @@ -16319,7 +16385,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $7) + call_indirect (type $8) i32.const 0 i32.gt_s local.set $c|9 @@ -16837,7 +16903,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s local.set $c @@ -16861,7 +16927,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s local.set $c @@ -16890,7 +16956,7 @@ global.set $~argumentsLength local.get $comparator i32.load - call_indirect (type $8) + call_indirect (type $9) i32.const 0 i32.gt_s local.set $c|9 @@ -20658,6 +20724,53 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array<~lib/array/Array>#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array<~lib/array/Array>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -20691,32 +20804,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#set:length_ + call $~lib/array/Array<~lib/array/Array>#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -22393,6 +22481,53 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array>#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array>#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array>#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array>#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array>#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -22426,32 +22561,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array>#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array>#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array>#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array>#set:length_ + call $~lib/array/Array>#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -25989,6 +26099,53 @@ local.get $4 return ) + (func $~lib/array/Array<~lib/string/String>#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array<~lib/string/String>#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -26022,32 +26179,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ + call $~lib/array/Array<~lib/string/String>#constructor|default local.get $length i32.const 1073741820 i32.const 2 diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 08748ccc40..570073c3c1 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -11,9 +11,9 @@ (type $9 (func (param i32 i32 i32 i32))) (type $10 (func (param i32 i32 i32 i32 i32))) (type $11 (func)) - (type $12 (func (result f64))) - (type $13 (func (param i32 i32 i32 i32 i32 i32))) - (type $14 (func (result i32))) + (type $12 (func (result i32))) + (type $13 (func (result f64))) + (type $14 (func (param i32 i32 i32 i32 i32 i32))) (type $15 (func (param i32 i32 i32) (result f32))) (type $16 (func (param i32 f64) (result i32))) (type $17 (func (param i32 i64) (result i32))) @@ -758,7 +758,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$729 + block $__inlined_func$~lib/rt/itcms/Object#unlink$723 local.get $0 i32.load offset=4 i32.const -4 @@ -782,7 +782,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$729 + br $__inlined_func$~lib/rt/itcms/Object#unlink$723 end local.get $0 i32.load offset=8 @@ -6449,6 +6449,60 @@ global.set $~started call $start:std/array ) + (func $~lib/array/Array#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -6485,30 +6539,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 + call $~lib/array/Array#constructor|default local.get $0 i32.const 268435455 i32.gt_u @@ -6971,7 +7002,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$139 + block $__inlined_func$~lib/util/bytes/FILL$141 local.get $1 i32.eqz local.get $1 @@ -6996,7 +7027,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$139 + br $__inlined_func$~lib/util/bytes/FILL$141 end loop $for-loop|0 local.get $0 @@ -7274,7 +7305,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$148 + block $__inlined_func$~lib/util/bytes/FILL$150 local.get $1 i32.reinterpret_f32 i32.eqz @@ -7296,7 +7327,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$148 + br $__inlined_func$~lib/util/bytes/FILL$150 end loop $for-loop|0 local.get $0 @@ -7689,7 +7720,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$651 + block $__inlined_func$~lib/rt/itcms/__renew$642 local.get $3 i32.const 20 i32.sub @@ -7707,7 +7738,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$651 + br $__inlined_func$~lib/rt/itcms/__renew$642 end local.get $1 local.get $4 @@ -11216,10 +11247,10 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11228,13 +11259,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -11245,21 +11276,40 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store local.get $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -13325,7 +13375,7 @@ local.get $2 i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted$656 (result i32) + block $__inlined_func$std/array/isSorted$648 (result i32) local.get $2 local.get $0 i32.store offset=8 @@ -13398,7 +13448,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted$656 + br $__inlined_func$std/array/isSorted$648 end local.get $0 i32.const 1 @@ -14670,7 +14720,7 @@ local.get $2 i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$658 (result i32) + block $__inlined_func$std/array/isSorted<~lib/array/Array>$651 (result i32) local.get $2 local.get $0 i32.store offset=8 @@ -14754,7 +14804,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$658 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$651 end local.get $1 i32.const 1 @@ -15158,7 +15208,7 @@ local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$734 (result i32) + block $__inlined_func$~lib/string/String#concat$728 (result i32) local.get $2 local.get $0 i32.store @@ -15207,7 +15257,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/string/String#concat$734 + br $__inlined_func$~lib/string/String#concat$728 end global.get $~lib/memory/__stack_pointer local.get $4 @@ -15246,124 +15296,18 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $4 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $5 - local.get $4 - i32.sub - local.tee $2 - i32.eqz - if - local.get $3 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $4 - i32.eqz - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $4 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $std/array/createRandomStringArray (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f64) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -15372,14 +15316,382 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $0 + i64.const 0 + i64.store + local.get $0 i32.const 0 - i32.store - local.get $5 + i32.store offset=8 local.get $0 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $8 i32.store - local.get $0 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#constructor|default + global.get $~lib/memory/__stack_pointer + i32.const 1600 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $8 + local.get $2 + i32.store + local.get $8 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1600 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 400 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $8 + i32.store + loop $for-loop|0 + local.get $1 + i32.const 400 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + block $__inlined_func$std/array/createRandomString$6 (result i32) + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_sat_f64_s + local.set $6 + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.const 20 + memory.fill + i32.const 11568 + local.set $0 + local.get $2 + i32.const 11568 + i32.store + loop $for-loop|01 + local.get $3 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.store offset=4 + local.get $4 + i32.const 10032 + i32.store offset=12 + call $~lib/math/NativeMath.random + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 10032 + i32.store offset=16 + local.get $7 + i32.const 10028 + i32.load + i32.const 1 + i32.shr_u + f64.convert_i32_s + f64.mul + f64.floor + i32.trunc_sat_f64_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 10032 + i32.store + block $__inlined_func$~lib/string/String#charAt$729 + local.get $5 + i32.const 10028 + i32.load + i32.const 1 + i32.shr_u + i32.ge_u + if + local.get $2 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $2 + br $__inlined_func$~lib/string/String#charAt$729 + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.const 1 + i32.shl + i32.const 10032 + i32.add + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $4 + local.get $0 + local.get $2 + call $~lib/string/String.__concat + local.tee $0 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$std/array/createRandomString$6 + end + br $folding-inner1 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $1 + local.get $0 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + local.get $0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $4 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $5 + local.get $4 + i32.sub + local.tee $2 + i32.eqz + if + local.get $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $4 + i32.eqz + local.get $5 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $4 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 0 + i32.store + local.get $5 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.set $4 local.get $5 local.get $0 @@ -15390,7 +15702,7 @@ local.get $5 local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) + block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) local.get $5 i32.const 8 i32.sub @@ -15415,7 +15727,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$7 end block $folding-inner0 local.get $6 @@ -15528,7 +15840,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$7 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -15586,7 +15898,7 @@ local.get $5 local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) + block $__inlined_func$~lib/util/string/joinIntegerArray$8 (result i32) local.get $5 i32.const 8 i32.sub @@ -15611,7 +15923,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$8 end block $folding-inner0 local.get $6 @@ -15724,7 +16036,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$8 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16287,7 +16599,7 @@ local.get $2 i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$8 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray$9 (result i32) local.get $2 i32.const 20 i32.sub @@ -16313,7 +16625,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$9 end local.get $5 i32.eqz @@ -16339,7 +16651,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$9 end i32.const 11568 local.set $0 @@ -16550,7 +16862,7 @@ local.get $4 i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result i32) + block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16575,7 +16887,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + br $__inlined_func$~lib/util/string/joinIntegerArray$10 end block $folding-inner00 local.get $5 @@ -16682,7 +16994,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + br $__inlined_func$~lib/util/string/joinIntegerArray$10 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16761,7 +17073,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa64$485 + block $__inlined_func$~lib/util/number/utoa64$476 local.get $3 i64.eqz if @@ -16771,7 +17083,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7712 local.set $1 - br $__inlined_func$~lib/util/number/utoa64$485 + br $__inlined_func$~lib/util/number/utoa64$476 end local.get $3 i64.const 4294967295 @@ -17112,7 +17424,7 @@ local.get $4 i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) + block $__inlined_func$~lib/util/string/joinIntegerArray$11 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17137,7 +17449,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$11 end block $folding-inner00 local.get $5 @@ -17244,7 +17556,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$11 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17361,7 +17673,7 @@ local.get $3 i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$12 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -17387,7 +17699,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$12 end local.get $4 i32.eqz @@ -17414,7 +17726,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$12 end i32.const 11568 local.set $0 @@ -17758,10 +18070,10 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) - (local $7 i32) + (local $4 i32) + (local $5 i64) + (local $6 f64) + (local $7 f32) (local $8 i32) (local $9 i32) (local $10 i32) @@ -17817,9 +18129,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17830,20 +18142,20 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -17852,98 +18164,117 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $9 i64.const 0 i64.store - local.get $8 + local.get $9 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.eqz if - local.get $8 + local.get $9 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store end global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $9 + local.get $1 i32.store offset=4 - local.get $2 + local.get $9 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.tee $9 i32.const 0 i32.store - local.get $2 + local.get $9 + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=12 - local.get $2 - local.get $8 + local.get $1 + local.get $9 i32.store - local.get $2 - local.get $8 + local.get $1 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - local.get $8 + local.get $1 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -17959,30 +18290,30 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17994,28 +18325,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1760 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18027,27 +18358,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1792 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18059,28 +18390,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18092,27 +18423,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1856 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18124,28 +18455,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18162,30 +18493,30 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 1968 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18197,28 +18528,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2016 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18230,27 +18561,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2064 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18262,28 +18593,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2112 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18295,27 +18626,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2160 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18327,28 +18658,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2208 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18365,30 +18696,30 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2304 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18400,28 +18731,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18433,27 +18764,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2400 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18465,28 +18796,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2448 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18498,27 +18829,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2496 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18530,28 +18861,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2544 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18563,28 +18894,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2592 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18597,9 +18928,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18611,9 +18942,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18627,16 +18958,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18651,9 +18982,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18667,9 +18998,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18683,9 +19014,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18699,9 +19030,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18713,9 +19044,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18729,16 +19060,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18752,9 +19083,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18768,9 +19099,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18785,16 +19116,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18808,9 +19139,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18824,9 +19155,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18841,9 +19172,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18858,16 +19189,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18881,9 +19212,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18897,9 +19228,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18914,9 +19245,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18931,9 +19262,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18947,33 +19278,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.load offset=4 i32.store offset=24 - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $8 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18986,14 +19317,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19001,9 +19332,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -19019,12 +19350,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -19038,9 +19369,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -19054,9 +19385,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -19070,9 +19401,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -19088,26 +19419,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19121,9 +19452,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19136,9 +19467,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19151,26 +19482,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19183,9 +19514,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19199,9 +19530,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19215,9 +19546,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19231,35 +19562,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19272,9 +19603,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -19287,9 +19618,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19302,9 +19633,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19318,9 +19649,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19334,9 +19665,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19350,9 +19681,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19366,9 +19697,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19382,15 +19713,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19408,12 +19739,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19424,23 +19755,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store - local.get $7 + local.get $8 global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store offset=8 - local.get $7 - local.get $2 local.get $8 + local.get $1 + local.get $9 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19453,9 +19784,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19471,32 +19802,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2848 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19514,32 +19845,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2944 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19557,32 +19888,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $2 - local.get $7 + local.get $8 + i32.store offset=8 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19600,32 +19931,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3136 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19643,31 +19974,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3232 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19685,31 +20016,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3328 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19727,31 +20058,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3424 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19769,32 +20100,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3520 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19812,31 +20143,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19854,31 +20185,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19896,31 +20227,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3808 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19938,32 +20269,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3904 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19977,16 +20308,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20000,9 +20331,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20016,9 +20347,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20033,9 +20364,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20050,9 +20381,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20067,9 +20398,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20084,16 +20415,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -20107,9 +20438,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20123,9 +20454,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -20140,9 +20471,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -20157,9 +20488,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -20174,9 +20505,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -20191,9 +20522,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -20207,11 +20538,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20220,15 +20551,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.le_s if @@ -20240,42 +20571,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.tee $9 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.tee $9 + local.tee $10 i32.load - local.set $10 - local.get $9 - local.get $9 + local.set $11 + local.get $10 + local.get $10 i32.const 4 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.tee $11 + local.tee $12 memory.copy - local.get $9 - local.get $11 + local.get $10 + local.get $12 i32.add i32.const 0 i32.store + local.get $9 local.get $8 - local.get $7 i32.store - local.get $7 - local.get $2 - i32.store offset=12 local.get $8 + local.get $1 + i32.store offset=12 + local.get $9 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -20290,9 +20621,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20306,9 +20637,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20322,9 +20653,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20339,9 +20670,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20356,9 +20687,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20373,9 +20704,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20390,9 +20721,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -20408,9 +20739,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20424,9 +20755,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20440,9 +20771,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20457,9 +20788,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20474,9 +20805,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20495,33 +20826,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20534,30 +20865,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20570,30 +20901,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20606,25 +20937,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store i32.const 0 global.set $~argumentsLength - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20637,31 +20968,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20674,30 +21005,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20710,30 +21041,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.tee $8 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20746,17 +21077,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -20767,18 +21098,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -20789,11 +21120,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20802,63 +21133,63 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $8 - local.get $2 - local.get $7 + local.set $9 + local.get $1 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.gt_u if - local.get $2 + local.get $1 i32.const 1 i32.shr_u - local.set $7 - local.get $2 + local.set $8 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 loop $while-continue|0 - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.lt_u if - local.get $8 - local.get $3 + local.get $9 + local.get $4 i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load - local.set $10 + local.set $11 + local.get $10 local.get $9 - local.get $8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.sub i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load i32.store - local.get $9 local.get $10 + local.get $11 i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $while-continue|0 end end @@ -20869,9 +21200,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20885,9 +21216,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20901,9 +21232,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20918,9 +21249,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20935,9 +21266,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20952,57 +21283,57 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 i32.const 4 i32.const 0 i32.const 7 i32.const 4208 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $4 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21031,40 +21362,40 @@ i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21093,40 +21424,40 @@ i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|2 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21155,40 +21486,40 @@ i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|3 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21217,40 +21548,40 @@ i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|4 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21279,40 +21610,40 @@ i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=84 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|5 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + local.get $8 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21537,14 +21868,14 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.tee $4 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21553,43 +21884,43 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 - local.get $2 + local.get $4 + local.get $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf$712 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf$708 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $8 i32.eqz - local.get $7 + local.get $8 i32.const 0 i32.le_s i32.or if - local.get $3 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$712 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf$708 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|01 - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21601,12 +21932,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$712 + br $__inlined_func$~lib/array/Array#indexOf$708 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|01 end end @@ -21615,9 +21946,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21633,14 +21964,14 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.tee $4 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21649,43 +21980,43 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 - local.get $2 + local.get $4 + local.get $0 i32.store - block $__inlined_func$~lib/array/Array#indexOf$713 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf$709 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $8 i32.eqz - local.get $7 + local.get $8 i32.const 0 i32.le_s i32.or if - local.get $3 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$713 + local.set $1 + br $__inlined_func$~lib/array/Array#indexOf$709 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|02 - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -21697,12 +22028,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$713 + br $__inlined_func$~lib/array/Array#indexOf$709 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end @@ -21711,9 +22042,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22008,20 +22339,20 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$714 (result i32) + block $__inlined_func$~lib/array/Array#includes$710 (result i32) i32.const 1 i32.const 2 i32.const 9 i32.const 4576 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.tee $4 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22030,47 +22361,47 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 - local.get $2 + local.get $4 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $8 i32.eqz - local.get $7 + local.get $8 i32.const 0 i32.le_s i32.or if - local.get $3 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$710 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|03 - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f32.ne if global.get $~lib/memory/__stack_pointer @@ -22078,12 +22409,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$710 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|03 end end @@ -22102,20 +22433,20 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$715 (result i32) + block $__inlined_func$~lib/array/Array#includes$711 (result i32) i32.const 1 i32.const 3 i32.const 12 i32.const 4608 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.tee $4 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22124,47 +22455,47 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 - local.get $2 + local.get $4 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $8 i32.eqz - local.get $7 + local.get $8 i32.const 0 i32.le_s i32.or if - local.get $3 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$711 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|04 - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if global.get $~lib/memory/__stack_pointer @@ -22172,12 +22503,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$711 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|04 end end @@ -22287,21 +22618,21 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 4688 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22321,12 +22652,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22353,21 +22684,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 4816 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22387,12 +22718,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22420,21 +22751,21 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4944 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22454,12 +22785,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22486,21 +22817,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22520,12 +22851,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22552,21 +22883,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5168 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22586,12 +22917,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22619,21 +22950,21 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5296 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22653,12 +22984,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22686,21 +23017,21 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5424 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22720,12 +23051,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22752,21 +23083,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5536 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22786,12 +23117,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22818,21 +23149,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5664 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22852,12 +23183,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22884,21 +23215,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5792 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22918,12 +23249,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22950,21 +23281,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5920 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22984,12 +23315,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23016,21 +23347,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6048 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23050,12 +23381,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23082,21 +23413,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6176 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23116,12 +23447,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23148,21 +23479,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6304 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23182,12 +23513,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23214,12 +23545,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $2 + local.tee $1 i32.store offset=100 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -23249,45 +23580,45 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=104 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=108 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -23313,11 +23644,11 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.load i32.const 3 i32.ne @@ -23352,9 +23683,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -23367,9 +23698,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -23389,9 +23720,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -23411,9 +23742,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -23439,33 +23770,33 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=116 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=120 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23476,107 +23807,107 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 0 - local.get $7 + local.get $8 i32.const 0 i32.le_s select - local.set $8 - local.get $3 + local.set $9 + local.get $4 i32.const 1 - local.get $7 local.get $8 + local.get $9 i32.sub - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 i32.const 1 i32.gt_s select - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $4 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $10 - local.get $9 - i32.store - local.get $9 - i32.load offset=4 - local.set $11 + local.tee $11 local.get $10 - local.get $2 i32.store + local.get $10 + i32.load offset=4 + local.set $12 local.get $11 - local.get $2 + local.get $1 + i32.store + local.get $12 + local.get $1 i32.load offset=4 - local.tee $10 - local.get $8 + local.tee $11 + local.get $9 i32.const 2 i32.shl i32.add - local.tee $11 - local.get $3 + local.tee $12 + local.get $4 i32.const 2 i32.shl memory.copy - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.add - local.tee $8 - local.get $7 + local.tee $9 + local.get $8 i32.ne if + local.get $12 local.get $11 - local.get $10 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add - local.get $7 local.get $8 + local.get $9 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $2 + local.tee $9 + local.get $1 i32.store - local.get $2 - local.get $7 - local.get $3 + local.get $1 + local.get $8 + local.get $4 i32.sub i32.store offset=12 - local.get $8 + local.get $9 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $9 + local.get $10 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23590,10 +23921,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $9 + local.get $10 i32.store offset=8 local.get $0 - local.get $9 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -23624,9 +23955,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23639,9 +23970,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get if @@ -23654,10 +23985,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -23742,12 +24073,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6704 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6704 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23765,12 +24096,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6736 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6736 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23788,12 +24119,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6768 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6768 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23827,12 +24158,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6800 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6800 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23955,10 +24286,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 6944 i32.store offset=8 local.get $0 @@ -23977,10 +24308,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 6976 i32.store offset=8 local.get $0 @@ -23999,10 +24330,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 7008 i32.store offset=8 local.get $0 @@ -24023,12 +24354,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7040 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7040 call $~lib/array/Array#every i32.const 1 @@ -24044,12 +24375,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7072 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7072 call $~lib/array/Array#every if @@ -24063,12 +24394,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7104 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7104 call $~lib/array/Array#every i32.const 1 @@ -24100,12 +24431,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7136 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7136 call $~lib/array/Array#every if @@ -24217,12 +24548,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7232 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7232 call $~lib/array/Array#some if @@ -24236,12 +24567,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7264 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7264 call $~lib/array/Array#some if @@ -24271,12 +24602,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7296 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7296 call $~lib/array/Array#some i32.const 1 @@ -24393,12 +24724,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7392 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7392 call $~lib/array/Array#forEach global.get $std/array/i @@ -24433,12 +24764,12 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7424 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7424 call $~lib/array/Array#forEach global.get $std/array/i @@ -24560,23 +24891,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end @@ -24612,7 +24943,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 @@ -24626,86 +24957,86 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.store - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|00 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store + local.tee $10 local.get $1 - local.get $3 + i32.store local.get $2 + local.get $4 + local.get $1 i32.load offset=12 - local.tee $10 - local.get $3 - local.get $10 + local.tee $11 + local.get $4 + local.get $11 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 - i32.store offset=8 + local.get $10 local.get $1 + i32.store offset=8 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $2 + local.tee $11 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $11 - local.get $9 - local.get $2 + local.set $12 + local.get $10 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $1 + local.get $10 + local.get $12 local.get $2 + local.get $1 i32.const 9296 i32.load call_indirect (type $1) - local.tee $9 + local.tee $10 i32.store offset=12 - local.get $8 - local.get $10 - i32.add local.get $9 + local.get $11 + i32.add + local.get $10 i32.store - local.get $7 - local.get $9 + local.get $8 + local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|00 end end @@ -24714,13 +25045,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 + local.get $8 i32.store offset=140 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 @@ -24734,80 +25065,80 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 local.get $2 - i32.store local.get $1 + i32.store local.get $2 + local.get $1 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $8 + local.set $9 i32.const 0 - local.set $1 + local.set $2 loop $for-loop|01 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store + local.tee $10 local.get $1 - local.get $3 + i32.store local.get $2 + local.get $4 + local.get $1 i32.load offset=12 - local.tee $10 - local.get $3 - local.get $10 + local.tee $11 + local.get $4 + local.get $11 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 - i32.store offset=8 + local.get $10 local.get $1 + i32.store offset=8 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $2 + local.tee $11 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $11 - local.get $9 - local.get $2 + local.set $12 + local.get $10 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 - i32.add + local.get $9 local.get $11 - local.get $1 + i32.add + local.get $12 local.get $2 + local.get $1 i32.const 9328 i32.load call_indirect (type $15) f32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|01 end end @@ -24816,12 +25147,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 + local.get $8 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24834,17 +25165,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store - local.get $6 + local.get $7 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -25660,26 +25991,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.eqz select - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 - i64.mul - local.tee $4 - local.get $4 + i64.mul + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -25687,22 +26018,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -26356,12 +26687,12 @@ i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 local.get $1 i32.const 10544 i32.store local.get $2 - local.get $3 + local.get $4 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26383,9 +26714,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual$13 (result i32) - i32.const 0 - local.set $2 + block $__inlined_func$std/array/isArraysEqual$14 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26395,15 +26724,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $2 local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -26411,7 +26740,7 @@ block $folding-inner01 local.get $1 call $~lib/array/Array#get:length - local.get $3 + local.get $2 i32.ne br_if $folding-inner01 local.get $0 @@ -26421,26 +26750,26 @@ loop $for-loop|02 local.get $2 local.get $3 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne else i32.const 0 @@ -26451,19 +26780,19 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $7 + local.get $4 local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -26475,23 +26804,23 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get - local.get $5 + local.get $6 f64.ne br_if $folding-inner01 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|02 end end @@ -26502,7 +26831,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual$13 + br $__inlined_func$std/array/isArraysEqual$14 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26696,7 +27025,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26704,7 +27033,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26712,7 +27041,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26720,7 +27049,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $7 + local.tee $3 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26728,27 +27057,27 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $8 + local.tee $4 i32.store offset=300 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $9 + local.tee $8 i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $10 + local.tee $9 i32.store offset=308 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $10 i32.store offset=312 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $11 i32.store offset=316 global.get $~lib/memory/__stack_pointer i32.const 512 @@ -26756,29 +27085,29 @@ local.tee $12 i32.store offset=320 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26791,24 +27120,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26821,18 +27150,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=8 - local.get $7 - local.get $8 + local.get $3 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26845,18 +27174,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=8 - local.get $9 local.get $8 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26869,18 +27198,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store - local.get $10 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=8 - local.get $10 - local.get $8 + local.get $9 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26893,18 +27222,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store - local.get $11 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=8 - local.get $11 - local.get $8 + local.get $10 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26917,18 +27246,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.store - local.get $0 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=8 - local.get $0 - local.get $8 + local.get $11 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26954,13 +27283,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.const 24 memory.fill - local.get $1 + local.get $0 global.get $std/array/inputStabArr - local.tee $0 + local.tee $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength @@ -26977,7 +27306,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 8 @@ -26992,9 +27321,9 @@ i64.const 0 i64.store local.get $2 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const 0 @@ -27018,19 +27347,19 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.tee $8 - local.get $7 + local.get $4 i32.store - local.get $7 + local.get $4 i32.load offset=4 local.set $9 local.get $8 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=4 local.get $3 i32.const 2 @@ -27038,33 +27367,33 @@ i32.add local.set $3 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.const 2 i32.shl local.set $2 loop $while-continue|05 - local.get $0 + local.get $1 local.get $2 i32.lt_u if - local.get $0 + local.get $1 local.get $9 i32.add - local.get $0 + local.get $1 local.get $3 i32.add i32.load local.tee $8 i32.store - local.get $7 + local.get $4 local.get $8 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end @@ -27077,44 +27406,44 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $7 + local.tee $1 + local.get $4 i32.store - local.get $0 + local.get $1 i32.const 11216 i32.store offset=4 - local.get $1 - local.get $7 + local.get $0 + local.get $4 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $3 + local.set $4 i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $2 + local.set $1 loop $for-loop|023 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 local.get $0 i32.store - local.get $7 + local.get $3 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.tee $7 + local.tee $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr @@ -27122,14 +27451,14 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $8 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $8 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 i32.load local.set $9 global.get $~lib/memory/__stack_pointer @@ -27144,33 +27473,33 @@ else global.get $~lib/memory/__stack_pointer local.tee $9 - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 i32.load offset=4 - local.set $7 + local.set $3 local.get $9 local.get $8 i32.store - local.get $7 + local.get $3 local.get $8 i32.load offset=4 i32.ne end if i32.const 0 - local.set $3 + local.set $4 br $for-break0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|023 end end end - local.get $3 + local.get $4 i32.eqz if i32.const 0 @@ -27231,6 +27560,8 @@ i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer + local.set $0 + i32.const 0 local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -27241,13 +27572,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27256,146 +27587,124 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 16 i32.const 29 call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 + local.tee $3 i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 + local.get $3 + call $~lib/array/Array#constructor|default global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $2 local.get $3 + local.get $4 i32.store - local.get $2 local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 + local.get $3 i32.store - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 + loop $for-loop|04 + local.get $1 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.const 1 - local.get $0 + local.get $1 i32.sub call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 local.get $2 - local.get $0 + i32.store offset=12 local.get $3 + local.get $1 + local.get $2 call $~lib/array/Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|03 + local.set $1 + br $for-loop|04 end end global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.store offset=332 global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 11376 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer local.set $0 + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27405,13 +27714,13 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27420,102 +27729,77 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 + local.tee $3 i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 + local.get $3 + call $~lib/array/Array#constructor|default global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $2 local.get $3 + local.get $4 i32.store - local.get $2 local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 + local.get $3 i32.store - i32.const 0 - local.set $1 - loop $for-loop|04 + loop $for-loop|05 local.get $1 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 + local.tee $2 local.get $3 + i32.store offset=4 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -27524,40 +27808,40 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $3 + local.tee $4 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 511 local.get $1 i32.sub i32.store - local.get $7 + local.get $4 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $2 - local.get $1 + i32.store offset=8 local.get $3 + local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|04 + br $for-loop|05 end end global.get $~lib/memory/__stack_pointer @@ -27565,15 +27849,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $3 i32.store offset=336 global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 11408 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27590,7 +27875,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27606,23 +27891,23 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11696 i32.store offset=8 - local.get $1 + local.get $2 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27631,17 +27916,17 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 (result i32) - local.get $1 + block $__inlined_func$std/array/isSorted<~lib/string/String|null>$654 (result i32) + local.get $2 local.get $0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11696 i32.store offset=12 local.get $0 @@ -27663,30 +27948,30 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i64.const 0 i64.store - local.get $7 + local.get $4 i32.const 0 i32.store offset=8 i32.const 1 - local.set $1 - local.get $7 + local.set $2 + local.get $4 local.get $3 i32.store local.get $3 call $~lib/array/Array#get:length - local.set $7 - loop $for-loop|05 - local.get $1 - local.get $7 + local.set $4 + loop $for-loop|03 + local.get $2 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 local.get $3 - local.get $1 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -27698,7 +27983,7 @@ local.get $3 i32.store offset=8 local.get $3 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $9 global.get $~lib/memory/__stack_pointer @@ -27719,13 +28004,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 + br $__inlined_func$std/array/isSorted<~lib/string/String|null>$654 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|05 + local.set $2 + br $for-loop|03 end end global.get $~lib/memory/__stack_pointer @@ -27751,12 +28036,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 (result i32) + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$733 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27767,22 +28052,22 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $3 i32.ne @@ -27792,10 +28077,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$733 end local.get $0 - local.get $2 + local.get $1 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27803,12 +28088,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$733 end i32.const 0 - local.set $1 - loop $for-loop|06 - local.get $1 + local.set $2 + loop $for-loop|045 + local.get $2 local.get $3 i32.lt_s if @@ -27816,17 +28101,17 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $8 global.get $~lib/memory/__stack_pointer @@ -27845,315 +28130,57 @@ i64.const 0 i64.store local.get $9 - local.get $7 + local.get $4 i32.store local.get $9 local.get $8 i32.store offset=4 - local.get $7 + local.get $4 local.get $8 call $~lib/string/String.__eq - i32.eqz - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|06 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $7 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $8 - local.get $1 - i32.store - local.get $8 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1600 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 400 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 - i32.store - i32.const 0 - local.set $1 - loop $for-loop|045 - local.get $1 - i32.const 400 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - call $~lib/math/NativeMath.random - f64.const 32 - f64.mul - i32.trunc_sat_f64_s - local.set $9 - i32.const 0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill - i32.const 11568 - local.set $3 - local.get $0 - i32.const 11568 - i32.store - loop $for-loop|07 - local.get $2 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $10 - local.get $3 - i32.store offset=4 - local.get $10 - i32.const 10032 - i32.store offset=12 - call $~lib/math/NativeMath.random - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 10032 - i32.store offset=16 - local.get $5 - i32.const 10028 - i32.load - i32.const 1 - i32.shr_u - f64.convert_i32_s - f64.mul - f64.floor - i32.trunc_sat_f64_s - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 10032 - i32.store - block $__inlined_func$~lib/string/String#charAt$735 - local.get $11 - i32.const 10028 - i32.load - i32.const 1 - i32.shr_u - i32.ge_u - if - local.get $0 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/string/String#charAt$735 - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $11 - i32.const 1 - i32.shl - i32.const 10032 - i32.add - i32.load16_u - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end + i32.eqz + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $3 - local.get $0 - call $~lib/string/String.__concat - local.tee $3 - i32.store - local.get $2 - i32.const 1 + i32.const 12 i32.add - local.set $2 - br $for-loop|07 + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$733 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|045 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $8 - local.get $1 - local.get $3 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|045 end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1184 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + call $std/array/createRandomStringArray + local.tee $0 i32.store offset=348 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength @@ -28166,23 +28193,23 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 11728 i32.store offset=8 - local.get $8 + local.get $0 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -28218,7 +28245,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $4 local.get $1 local.get $0 i32.store @@ -28229,9 +28256,9 @@ i32.const 11856 i32.store i32.const 0 - local.set $1 - i32.const 0 local.set $2 + i32.const 0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28241,50 +28268,50 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinBooleanArray$19 + block $__inlined_func$~lib/util/string/joinBooleanArray$18 local.get $0 i32.const 1 i32.sub - local.tee $8 + local.tee $0 i32.const 0 i32.lt_s if - local.get $7 + local.get $1 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + local.set $1 + br $__inlined_func$~lib/util/string/joinBooleanArray$18 end - block $folding-inner04 - local.get $8 + block $folding-inner05 + local.get $0 i32.eqz if i32.const 11792 i32.const 11824 - local.get $3 + local.get $4 i32.load8_u select - local.set $0 - br $folding-inner04 + local.set $1 + br $folding-inner05 end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 11856 i32.store - local.get $0 + local.get $1 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $8 i32.const 5 i32.add - local.get $8 + local.get $0 i32.mul i32.const 5 i32.add @@ -28293,15 +28320,15 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store offset=4 - loop $for-loop|15 - local.get $2 - local.get $8 - i32.lt_s + loop $for-loop|16 + local.get $0 + local.get $3 + i32.gt_s if - local.get $2 local.get $3 + local.get $4 i32.add i32.load8_u local.tee $10 @@ -28309,8 +28336,8 @@ i32.const 4 i32.add local.set $11 - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add @@ -28322,77 +28349,77 @@ i32.const 1 i32.shl memory.copy - local.get $1 + local.get $2 local.get $11 i32.add - local.set $1 - local.get $7 + local.set $2 + local.get $8 if - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $7 + local.get $8 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.add - local.set $1 + local.set $2 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - br $for-loop|15 + local.set $3 + br $for-loop|16 end end - local.get $3 - local.get $8 + local.get $0 + local.get $4 i32.add i32.load8_u - local.tee $2 + local.tee $0 i32.eqz i32.const 4 i32.add local.set $3 - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $2 + local.get $0 select local.get $3 i32.const 1 i32.shl memory.copy - local.get $1 + local.get $2 local.get $3 i32.add - local.tee $1 + local.tee $0 local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner04 + local.set $1 + br $folding-inner05 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + br $__inlined_func$~lib/util/string/joinBooleanArray$18 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28404,12 +28431,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 11888 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -28976,7 +29003,7 @@ i32.store local.get $0 i32.load offset=12 - local.set $7 + local.set $4 local.get $1 i32.const 11856 i32.store @@ -28996,11 +29023,11 @@ local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$20 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$19 + local.get $4 i32.const 1 i32.sub - local.tee $7 + local.tee $4 i32.const 0 i32.lt_s if @@ -29009,18 +29036,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 + local.set $1 + br $__inlined_func$~lib/util/string/joinIntegerArray$19 end - block $folding-inner05 - local.get $7 + block $folding-inner06 + local.get $4 i32.eqz if local.get $2 i32.load16_u call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner05 + local.set $1 + br $folding-inner06 end global.get $~lib/memory/__stack_pointer local.tee $1 @@ -29034,7 +29061,7 @@ local.tee $8 i32.const 10 i32.add - local.get $7 + local.get $4 i32.mul i32.const 10 i32.add @@ -29045,9 +29072,9 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 - loop $for-loop|08 + loop $for-loop|07 local.get $3 - local.get $7 + local.get $4 i32.lt_s if local.get $1 @@ -29086,7 +29113,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|08 + br $for-loop|07 end end local.get $1 @@ -29095,7 +29122,7 @@ i32.shl i32.add local.get $2 - local.get $7 + local.get $4 i32.const 1 i32.shl i32.add @@ -29113,16 +29140,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner05 + local.set $1 + br $folding-inner06 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 + br $__inlined_func$~lib/util/string/joinIntegerArray$19 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29138,12 +29163,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14288 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14288 call $~lib/string/String.__eq i32.eqz @@ -29206,7 +29231,7 @@ i32.store local.get $0 i32.load offset=12 - local.set $7 + local.set $4 local.get $1 i32.const 11856 i32.store @@ -29226,11 +29251,11 @@ local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$21 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$20 + local.get $4 i32.const 1 i32.sub - local.tee $7 + local.tee $4 i32.const 0 i32.lt_s if @@ -29239,18 +29264,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 + local.set $1 + br $__inlined_func$~lib/util/string/joinIntegerArray$20 end - block $folding-inner06 - local.get $7 + block $folding-inner07 + local.get $4 i32.eqz if local.get $2 i32.load16_s call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner06 + local.set $1 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer local.tee $1 @@ -29264,7 +29289,7 @@ local.tee $8 i32.const 11 i32.add - local.get $7 + local.get $4 i32.mul i32.const 11 i32.add @@ -29275,9 +29300,9 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 - loop $for-loop|09 + loop $for-loop|08 local.get $3 - local.get $7 + local.get $4 i32.lt_s if local.get $1 @@ -29316,7 +29341,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|09 + br $for-loop|08 end end local.get $1 @@ -29325,7 +29350,7 @@ i32.shl i32.add local.get $2 - local.get $7 + local.get $4 i32.const 1 i32.shl i32.add @@ -29343,16 +29368,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner06 + local.set $1 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 + br $__inlined_func$~lib/util/string/joinIntegerArray$20 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29368,12 +29391,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14368 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -29551,7 +29574,7 @@ i32.store local.get $0 i32.load offset=12 - local.set $7 + local.set $4 local.get $1 i32.const 11856 i32.store @@ -29571,11 +29594,11 @@ local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$22 - local.get $7 + block $__inlined_func$~lib/util/string/joinIntegerArray$21 + local.get $4 i32.const 1 i32.sub - local.tee $7 + local.tee $4 i32.const 0 i32.lt_s if @@ -29584,18 +29607,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + local.set $1 + br $__inlined_func$~lib/util/string/joinIntegerArray$21 end - block $folding-inner07 - local.get $7 + block $folding-inner08 + local.get $4 i32.eqz if block $__inlined_func$~lib/util/number/itoa64$2 (result i32) local.get $2 i64.load i64.extend32_s - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29608,7 +29631,7 @@ local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $5 i64.eqz if local.get $0 @@ -29619,65 +29642,65 @@ br $__inlined_func$~lib/util/number/itoa64$2 end i64.const 0 - local.get $4 + local.get $5 i64.sub - local.get $4 - local.get $4 + local.get $5 + local.get $5 i64.const 63 i64.shr_u i32.wrap_i64 i32.const 1 i32.shl - local.tee $0 + local.tee $1 select - local.tee $4 + local.tee $5 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -29686,89 +29709,89 @@ local.tee $3 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 - i32.add local.get $1 + i32.add + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $4 + local.get $5 i64.const 10000000000 i64.ge_u i32.add else - local.get $4 + local.get $5 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $4 + local.get $5 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $4 + local.get $5 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $4 + local.get $5 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $4 + local.get $5 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 - i32.add - local.get $4 local.get $1 + i32.add + local.get $5 + local.get $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $2 + local.get $0 i32.const 45 i32.store16 end @@ -29776,10 +29799,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 end - local.set $0 - br $folding-inner07 + local.set $1 + br $folding-inner08 end global.get $~lib/memory/__stack_pointer local.tee $1 @@ -29793,7 +29816,7 @@ local.tee $8 i32.const 21 i32.add - local.get $7 + local.get $4 i32.mul i32.const 21 i32.add @@ -29804,9 +29827,9 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 - loop $for-loop|010 + loop $for-loop|09 local.get $3 - local.get $7 + local.get $4 i32.lt_s if local.get $1 @@ -29845,7 +29868,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|010 + br $for-loop|09 end end local.get $1 @@ -29854,7 +29877,7 @@ i32.shl i32.add local.get $2 - local.get $7 + local.get $4 i32.const 3 i32.shl i32.add @@ -29872,16 +29895,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner07 + local.set $1 + br $folding-inner08 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + br $__inlined_func$~lib/util/string/joinIntegerArray$21 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29897,12 +29918,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14704 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -30071,7 +30092,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$22 local.get $1 i32.const 1 i32.sub @@ -30085,7 +30106,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$22 end local.get $1 i32.eqz @@ -30111,23 +30132,23 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$22 end i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 11568 i32.store offset=8 - local.get $7 + local.get $4 i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|011 + local.set $4 + loop $for-loop|06 local.get $1 local.get $3 i32.gt_s @@ -30163,7 +30184,7 @@ local.tee $0 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer local.tee $8 @@ -30183,7 +30204,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|011 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer @@ -30343,7 +30364,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 local.get $1 i32.const 1 i32.sub @@ -30357,7 +30378,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 end local.get $1 i32.eqz @@ -30383,23 +30404,23 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 end i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 11568 i32.store offset=8 - local.get $7 + local.get $4 i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|012 + local.set $4 + loop $for-loop|010 local.get $1 local.get $3 i32.gt_s @@ -30435,7 +30456,7 @@ local.tee $0 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer local.tee $8 @@ -30455,7 +30476,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|012 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer @@ -30623,7 +30644,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$24 local.get $1 i32.const 1 i32.sub @@ -30637,7 +30658,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$24 end local.get $1 i32.eqz @@ -30663,23 +30684,23 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$24 end i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 11568 i32.store offset=8 - local.get $7 + local.get $4 i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|013 + local.set $4 + loop $for-loop|011 local.get $1 local.get $3 i32.gt_s @@ -30715,7 +30736,7 @@ local.tee $0 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer local.tee $8 @@ -30735,7 +30756,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|013 + br $for-loop|011 end end global.get $~lib/memory/__stack_pointer @@ -30854,12 +30875,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $0 i32.store offset=456 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 10 i32.ne @@ -30872,19 +30893,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|7 - local.get $0 + local.get $1 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.ne if i32.const 0 @@ -30894,10 +30915,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|7 end end @@ -30950,7 +30971,7 @@ local.get $1 i32.store offset=468 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30963,61 +30984,61 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $3 + local.get $2 local.get $1 i32.store local.get $1 i32.load offset=12 local.set $8 i32.const 0 - local.set $1 + local.set $2 i32.const 0 - local.set $0 - loop $for-loop|056 - local.get $0 + local.set $1 + loop $for-loop|034 + local.get $1 local.get $8 i32.lt_s if - local.get $7 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $4 if (result i32) - local.get $3 + local.get $4 i32.load offset=12 else i32.const 0 end - local.get $1 + local.get $2 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|056 + local.set $1 + br $for-loop|034 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $9 @@ -31029,10 +31050,10 @@ local.tee $10 i32.store offset=8 local.get $10 - local.get $1 + local.get $2 i32.store offset=12 local.get $10 - local.get $0 + local.get $1 i32.store offset=8 local.get $10 local.get $9 @@ -31045,23 +31066,23 @@ i32.const 0 call $~lib/rt/itcms/__link i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.set $3 - loop $for-loop|16 - local.get $3 + local.set $4 + loop $for-loop|14 + local.get $4 local.get $8 i32.lt_s if - local.get $7 local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load local.tee $11 if - local.get $0 + local.get $1 local.get $9 i32.add local.get $11 @@ -31072,46 +31093,46 @@ i32.shl local.tee $11 memory.copy - local.get $0 + local.get $1 local.get $11 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|16 + local.set $4 + br $for-loop|14 end end i32.const 0 - local.set $0 - loop $for-loop|27 - local.get $0 + local.set $1 + loop $for-loop|25 local.get $1 + local.get $2 i32.lt_s if local.get $9 local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|27 + local.set $1 + br $for-loop|25 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $10 i32.store offset=472 global.get $~lib/memory/__stack_pointer @@ -31138,38 +31159,38 @@ unreachable end i32.const 0 - local.set $1 + local.set $3 loop $for-loop|8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=52 local.get $10 - local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=52 local.get $0 - local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 + local.get $1 local.get $2 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -31180,10 +31201,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|8 end end @@ -31245,13 +31266,13 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=492 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=496 - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -31259,7 +31280,7 @@ i32.const 15920 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 2 @@ -31268,12 +31289,12 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=500 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 15984 @@ -31287,39 +31308,39 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $1 local.get $2 - i32.store local.get $1 + i32.store local.get $2 + local.get $1 i32.load offset=12 local.tee $3 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store - local.get $7 + local.get $4 i32.load offset=4 local.set $8 i32.const 0 - local.set $1 - loop $for-loop|067 + local.set $2 + loop $for-loop|0456 global.get $~lib/memory/__stack_pointer local.tee $9 - local.get $2 - i32.store local.get $1 - local.get $3 + i32.store local.get $2 + local.get $3 + local.get $1 i32.load offset=12 local.tee $10 local.get $3 @@ -31329,28 +31350,28 @@ i32.lt_s if local.get $9 - local.get $2 + local.get $1 i32.store offset=12 local.get $9 - local.get $1 + local.get $2 i32.const 2 i32.shl local.tee $10 - local.get $2 + local.get $1 i32.load offset=4 i32.add i32.load local.tee $11 i32.store local.get $9 - local.get $2 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $9 local.get $11 - local.get $1 local.get $2 + local.get $1 i32.const 15984 i32.load call_indirect (type $1) @@ -31361,15 +31382,15 @@ i32.add local.get $9 i32.store - local.get $7 + local.get $4 local.get $9 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|067 + local.set $2 + br $for-loop|0456 end end global.get $~lib/memory/__stack_pointer @@ -31377,10 +31398,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store local.get $0 - local.get $7 + local.get $4 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=504 diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 4c4d8cdc3e..a7b3311330 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -3008,6 +3008,45 @@ local.get $16 return ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -3038,24 +3077,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 @@ -3199,6 +3221,45 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) + (func $~lib/dataview/DataView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/dataview/DataView#constructor (param $this i32) (param $buffer i32) (param $byteOffset i32) (param $byteLength i32) (result i32) (local $dataStart i32) (local $5 i32) @@ -3229,24 +3290,7 @@ local.get $5 i32.store offset=4 local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:buffer - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:dataStart - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:byteLength + call $~lib/dataview/DataView#constructor|default local.get $byteLength i32.const 1073741820 i32.gt_u diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 94378e232a..5791fb2feb 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -113,7 +113,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$172 + block $__inlined_func$~lib/rt/itcms/Object#unlink$170 local.get $0 i32.load offset=4 i32.const -4 @@ -137,7 +137,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$172 + br $__inlined_func$~lib/rt/itcms/Object#unlink$170 end local.get $0 i32.load offset=8 @@ -1759,6 +1759,53 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + if + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -1797,23 +1844,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + call $~lib/arraybuffer/ArrayBufferView#constructor|default i32.const 1073741820 local.get $1 i32.shr_u @@ -2383,23 +2414,7 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + call $~lib/arraybuffer/ArrayBufferView#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index d2e17e744a..d3fb2ae9e5 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -2655,6 +2655,45 @@ unreachable end ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -2685,24 +2724,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 @@ -2849,6 +2871,45 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/dataview/DataView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/dataview/DataView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/dataview/DataView#constructor (param $this i32) (param $buffer i32) (param $byteOffset i32) (param $byteLength i32) (result i32) (local $dataStart i32) (local $5 i32) @@ -2879,24 +2940,7 @@ local.get $5 i32.store offset=4 local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:buffer - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:dataStart - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $~lib/dataview/DataView#set:byteLength + call $~lib/dataview/DataView#constructor|default local.get $byteLength i32.const 1073741820 i32.gt_u diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index cc6eb07c78..913c324211 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -2,8 +2,8 @@ (type $0 (func (param i32 i32 i32))) (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (param i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32) (result i64))) (type $7 (func (param i32 i64 i32))) @@ -121,7 +121,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$218 + block $__inlined_func$~lib/rt/itcms/Object#unlink$217 local.get $0 i32.load offset=4 i32.const -4 @@ -145,7 +145,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$218 + br $__inlined_func$~lib/rt/itcms/Object#unlink$217 end local.get $0 i32.load offset=8 @@ -1637,6 +1637,50 @@ (func $~start call $start:std/dataview ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -1723,20 +1767,7 @@ local.get $3 i32.store offset=4 local.get $3 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 + call $~lib/arraybuffer/ArrayBufferView#constructor|default global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3113,16 +3144,16 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -3157,120 +3188,100 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if - local.get $2 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 - end - br $folding-inner1 - end + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + local.get $3 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#constructor|default + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4852,7 +4863,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -5056,7 +5067,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -5265,7 +5276,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 38f16b3ed2..822f88783b 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -3,8 +3,8 @@ (type $1 (func (param i32 i32))) (type $2 (func (param i32 i32) (result i32))) (type $3 (func (param i32 i32 i32) (result i32))) - (type $4 (func (param i32 i32 i32))) - (type $5 (func (param i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32 i32))) (type $6 (func)) (type $7 (func (param i32 i32 i32 i32))) (type $8 (func (param i64) (result i32))) @@ -3822,6 +3822,45 @@ unreachable end ) + (func $~lib/date/Date#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/date/Date#set:year + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/date/Date#set:month + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/date/Date#set:day + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/date/Date#constructor (param $this i32) (param $epochMillis i64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -3856,24 +3895,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - call $~lib/date/Date#set:year - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - call $~lib/date/Date#set:month - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - call $~lib/date/Date#set:day + call $~lib/date/Date#constructor|default local.get $epochMillis call $~lib/date/invalidDate if diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 4ce5b2a67f..112d2e2b4d 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -488,7 +488,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$359 + block $__inlined_func$~lib/rt/itcms/Object#unlink$361 local.get $0 i32.load offset=4 i32.const -4 @@ -512,7 +512,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$359 + br $__inlined_func$~lib/rt/itcms/Object#unlink$361 end local.get $0 i32.load offset=8 @@ -2518,91 +2518,112 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i64.store offset=16 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $0 - i64.const -8640000000000000 - i64.lt_s - local.get $0 - i64.const 8640000000000000 - i64.gt_s - i32.or - if - i32.const 1056 - i32.const 1104 - i32.const 100 - i32.const 35 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7828 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i64.store offset=16 + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7828 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $2 + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i64.const -8640000000000000 + i64.lt_s + local.get $0 + i64.const 8640000000000000 + i64.gt_s + i32.or + if + i32.const 1056 + i32.const 1104 + i32.const 100 + i32.const 35 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/date/dateFromEpoch + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_month + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_day + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/date/dateFromEpoch - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_month - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_day - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 40624 + i32.const 40672 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/date/Date#setTime (param $0 i32) (param $1 i64) (local $2 i32) @@ -3340,7 +3361,7 @@ local.get $5 i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padStart$367 + block $__inlined_func$~lib/string/String#padStart$369 i32.const 1868 i32.load i32.const -2 @@ -3359,7 +3380,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padStart$367 + br $__inlined_func$~lib/string/String#padStart$369 end global.get $~lib/memory/__stack_pointer local.get $6 @@ -3779,7 +3800,7 @@ local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$368 (result i32) + block $__inlined_func$~lib/string/String#concat$370 (result i32) local.get $1 local.get $3 i32.store @@ -3828,7 +3849,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - br $__inlined_func$~lib/string/String#concat$368 + br $__inlined_func$~lib/string/String#concat$370 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -5215,7 +5236,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$350 + block $__inlined_func$~lib/rt/itcms/__renew$352 i32.const 1073741820 local.get $2 i32.const 1 @@ -5258,7 +5279,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$350 + br $__inlined_func$~lib/rt/itcms/__renew$352 end local.get $3 local.get $4 @@ -5922,7 +5943,7 @@ i32.load16_u local.set $0 loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$183 (result i32) + block $__inlined_func$~lib/util/string/isSpace$184 (result i32) local.get $0 i32.const 128 i32.or @@ -5937,7 +5958,7 @@ local.get $0 i32.const 5760 i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$183 + br_if $__inlined_func$~lib/util/string/isSpace$184 drop i32.const 1 local.get $0 @@ -5945,7 +5966,7 @@ i32.add i32.const 10 i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$183 + br_if $__inlined_func$~lib/util/string/isSpace$184 drop block $break|0 block $case0|0 @@ -5980,7 +6001,7 @@ br $break|0 end i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$183 + br $__inlined_func$~lib/util/string/isSpace$184 end i32.const 0 end diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index e257b10dce..29c4bf5fb7 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -1,9 +1,9 @@ (module (type $0 (func (param i32 i32))) (type $1 (func (param i32) (result i32))) - (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32 i32 i32) (result i32))) - (type $4 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32) (result i32))) (type $5 (func)) (type $6 (func (param i32 i32 i32))) (type $7 (func (param i32) (result i64))) @@ -5743,34 +5743,21 @@ unreachable end ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -5780,14 +5767,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -5797,7 +5784,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -5810,14 +5797,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -5825,7 +5812,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -5833,14 +5820,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -6426,6 +6445,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -6459,32 +6525,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 0 @@ -6883,6 +6924,53 @@ local.get $8 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -6916,32 +7004,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -7221,34 +7284,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -7258,14 +7308,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -7275,7 +7325,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -7288,14 +7338,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -7303,7 +7353,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -7311,37 +7361,31 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $this i32.store @@ -7352,6 +7396,31 @@ local.get $1 i32.store offset=4 local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 i32.const 4 i32.const 4 @@ -7360,14 +7429,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -7377,7 +7446,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -7390,14 +7459,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -7405,7 +7474,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -7413,14 +7482,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -9430,34 +9531,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -9467,14 +9555,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -9484,7 +9572,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -9497,14 +9585,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -9512,7 +9600,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -9520,14 +9608,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -10115,6 +10235,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -10148,32 +10315,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 0 @@ -10556,34 +10698,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -10593,14 +10722,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -10610,7 +10739,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -10623,14 +10752,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -10638,7 +10767,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -10646,14 +10775,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -12106,34 +12267,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -12143,14 +12291,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -12160,7 +12308,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -12173,14 +12321,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -12188,7 +12336,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -12196,14 +12344,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -12789,6 +12969,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -12822,32 +13049,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 1 @@ -13230,34 +13432,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -13267,14 +13456,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -13284,7 +13473,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -13297,37 +13486,69 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - call $~lib/map/Map#set:entriesCapacity + local.get $1 + i32.store + local.get $1 + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/map/Map#set:entriesOffset + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -14778,34 +14999,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -14815,14 +15023,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -14832,7 +15040,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -14845,14 +15053,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -14860,7 +15068,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -14868,14 +15076,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -15463,6 +15703,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -15496,32 +15783,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 1 @@ -15904,34 +16166,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -15941,14 +16190,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -15958,7 +16207,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -15971,14 +16220,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -15986,7 +16235,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -15994,14 +16243,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -18616,35 +18897,22 @@ i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + ) + (func $~lib/map/Map#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -18654,14 +18922,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -18671,7 +18939,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -18684,14 +18952,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -18699,7 +18967,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -18707,14 +18975,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -19298,6 +19598,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -19331,32 +19678,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -19739,34 +20061,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -19776,14 +20085,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -19793,7 +20102,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -19806,14 +20115,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -19821,7 +20130,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -19829,14 +20138,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -21285,34 +21626,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -21322,14 +21650,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -21339,7 +21667,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -21352,14 +21680,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -21367,7 +21695,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -21375,14 +21703,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 local.get $1 - i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#constructor|default local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -21966,6 +22326,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -21999,32 +22406,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 @@ -22407,34 +22789,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -22444,14 +22813,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -22461,7 +22830,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -22474,14 +22843,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -22489,7 +22858,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -22497,14 +22866,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -23962,34 +24363,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -23999,14 +24387,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -24016,7 +24404,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -24029,14 +24417,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -24044,7 +24432,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -24052,14 +24440,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -24634,14 +25054,61 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount - local.set $1 + call $~lib/map/Map#get:entriesCount + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -24676,32 +25143,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 @@ -25084,34 +25526,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -25121,14 +25550,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -25138,7 +25567,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -25151,14 +25580,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -25166,7 +25595,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -25174,14 +25603,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -26639,34 +27100,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 27 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -26676,14 +27124,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -26693,7 +27141,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -26706,14 +27154,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -26721,7 +27169,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -26729,14 +27177,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 27 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -27320,6 +27800,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -27353,32 +27880,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -27761,34 +28263,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -27798,14 +28287,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -27815,7 +28304,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -27828,14 +28317,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -27843,7 +28332,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -27851,14 +28340,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -29316,34 +29837,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 30 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -29353,14 +29861,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -29370,7 +29878,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -29383,14 +29891,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -29398,7 +29906,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -29406,14 +29914,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -29997,6 +30537,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -30030,32 +30617,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 @@ -30438,34 +31000,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 32 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -30475,14 +31024,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -30492,7 +31041,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -30505,14 +31054,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -30520,7 +31069,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -30528,14 +31077,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 32 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 3cd075d0b8..e4b0ac8214 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -3,8 +3,8 @@ (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32 i32 i32))) (type $3 (func)) - (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32) (result i32))) (type $7 (func (param i32 i64) (result i32))) (type $8 (func (param i32 i32 i32 i32))) @@ -134,7 +134,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1289 local.get $0 i32.load offset=4 i32.const -4 @@ -158,7 +158,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1289 end local.get $0 i32.load offset=8 @@ -1789,6 +1789,86 @@ i32.add global.set $~lib/rt/itcms/threshold ) + (func $~lib/map/Map#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -2437,6 +2517,59 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/array/Array#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) @@ -2517,7 +2650,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$1377 + block $__inlined_func$~lib/rt/itcms/__renew$1242 local.get $4 i32.const 20 i32.sub @@ -2535,7 +2668,7 @@ i32.store offset=16 local.get $4 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$1377 + br $__inlined_func$~lib/rt/itcms/__renew$1242 end local.get $1 local.get $3 @@ -2717,29 +2850,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=12 + call $~lib/array/Array#constructor|default local.get $0 i32.const 268435455 i32.gt_u @@ -2997,11 +3108,10 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $~lib/map/Map#constructor (result i32) - (local $0 i32) + (func $~lib/map/Map#constructor|default (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3016,27 +3126,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store + local.get $1 local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store @@ -3045,19 +3146,19 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 48 + i32.store + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 @@ -3066,24 +3167,61 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/map/Map#constructor|default + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -3266,7 +3404,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1378 + block $__inlined_func$~lib/map/Map#find$1244 loop $while-continue|0 local.get $3 if @@ -3290,7 +3428,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1378 + br $__inlined_func$~lib/map/Map#find$1244 end local.get $4 i32.const -2 @@ -4242,98 +4380,19 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#clear (param $0 i32) + (func $std/map/testNumeric + (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/map/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -4342,12 +4401,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $2 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4355,89 +4414,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.tee $5 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -4448,19 +4455,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -4472,12 +4479,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -4489,17 +4496,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -4512,17 +4519,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -4534,12 +4541,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -4552,19 +4559,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -4576,12 +4583,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -4593,17 +4600,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -4616,35 +4623,188 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.tee $1 + local.get $5 i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + block $__inlined_func$~lib/map/Map#keys$3 (result i32) + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=8 + local.set $7 + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array#constructor|default + local.get $8 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $9 + local.get $4 + i32.store + local.get $9 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $9 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $1 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + br $__inlined_func$~lib/map/Map#keys$3 + end + br $folding-inner1 + end + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $5 + i32.store offset=4 + local.get $1 + local.get $5 + call $~lib/map/Map#values + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4652,265 +4812,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 5 + local.get $4 + i32.const 24 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.tee $4 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $7 - local.get $0 - i32.store - local.get $7 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4921,14 +4858,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 - local.get $7 + local.get $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -4940,31 +4877,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.tee $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=4 i32.add i32.load8_s - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $6 + local.get $5 + local.get $7 call $~lib/map/Map#has i32.eqz if @@ -4976,10 +4913,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $6 i32.const 20 i32.sub call $~lib/map/Map#has @@ -4993,33 +4930,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -5032,9 +4969,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -5047,17 +4984,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -5069,12 +5006,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -5087,16 +5024,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -5106,17 +5043,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -5129,17 +5066,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -5150,19 +5087,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 - i32.const 10 + local.get $5 + local.get $1 + local.get $1 + i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -5174,16 +5111,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -5193,17 +5130,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -5216,14 +5153,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size if i32.const 0 @@ -5875,7 +5812,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1383 + block $__inlined_func$~lib/map/Map#find$1249 loop $while-continue|0 local.get $3 if @@ -5899,7 +5836,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1383 + br $__inlined_func$~lib/map/Map#find$1249 end local.get $4 i32.const -2 @@ -6390,6 +6327,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -6400,12 +6338,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $2 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6413,89 +6351,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.tee $5 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -6506,19 +6392,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -6530,12 +6416,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -6547,17 +6433,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -6570,17 +6456,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -6592,12 +6478,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -6610,19 +6496,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -6634,12 +6520,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -6651,17 +6537,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -6674,204 +6560,188 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 + local.tee $1 + local.get $5 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $7 - local.get $0 - i32.store - local.get $7 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + local.get $1 + block $__inlined_func$~lib/map/Map#keys$5 (result i32) local.get $1 - local.get $6 - i32.lt_s - if + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $5 + i32.store local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.set $7 + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array#constructor|default + local.get $8 + i32.const 1073741820 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + local.tee $1 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $9 + local.get $4 + i32.store + local.get $9 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $1 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $9 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $1 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + br $__inlined_func$~lib/map/Map#keys$5 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $1 + local.get $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + local.get $5 call $~lib/map/Map#values - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6879,96 +6749,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + local.get $4 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 local.get $4 - i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6979,14 +6795,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 - local.get $7 + local.get $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -6998,31 +6814,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.tee $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $6 + local.get $5 + local.get $7 call $~lib/map/Map#has i32.eqz if @@ -7034,10 +6850,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $6 i32.const 20 i32.sub call $~lib/map/Map#has @@ -7051,33 +6867,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -7090,9 +6906,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -7105,17 +6921,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -7127,12 +6943,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -7145,16 +6961,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -7164,17 +6980,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -7187,17 +7003,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -7208,19 +7024,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -7232,16 +7048,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -7251,17 +7067,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -7274,14 +7090,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size if i32.const 0 @@ -8117,7 +7933,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1388 + block $__inlined_func$~lib/map/Map#find$1254 loop $while-continue|0 local.get $3 if @@ -8141,7 +7957,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1388 + br $__inlined_func$~lib/map/Map#find$1254 end local.get $4 i32.const -2 @@ -8632,6 +8448,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -8642,12 +8459,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $2 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8655,89 +8472,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $5 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -8748,19 +8513,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -8772,12 +8537,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -8789,17 +8554,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -8812,17 +8577,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -8834,12 +8599,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -8852,19 +8617,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -8876,12 +8641,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -8893,17 +8658,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -8916,206 +8681,190 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $7 - local.get $0 - i32.store - local.get $7 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.tee $1 + local.get $5 i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + local.get $1 + block $__inlined_func$~lib/map/Map#keys$7 (result i32) local.get $1 - local.get $6 - i32.lt_s - if + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $5 + i32.store local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.set $7 + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array#constructor|default + local.get $8 + i32.const 536870910 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $1 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $9 + local.get $4 + i32.store + local.get $9 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $1 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $9 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $1 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + br $__inlined_func$~lib/map/Map#keys$7 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $1 + local.get $5 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + local.get $5 call $~lib/map/Map#values - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9123,96 +8872,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 + local.get $4 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store - local.get $2 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9223,14 +8918,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 - local.get $7 + local.get $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -9242,33 +8937,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.tee $6 + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=4 - local.get $1 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_s - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $6 + local.get $5 + local.get $7 call $~lib/map/Map#has i32.eqz if @@ -9280,10 +8975,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $6 i32.const 20 i32.sub call $~lib/map/Map#has @@ -9297,33 +8992,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -9336,9 +9031,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -9351,17 +9046,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -9373,12 +9068,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -9391,16 +9086,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -9410,17 +9105,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -9433,17 +9128,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -9454,19 +9149,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -9478,16 +9173,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -9497,17 +9192,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -9520,14 +9215,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size if i32.const 0 @@ -10179,7 +9874,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1393 + block $__inlined_func$~lib/map/Map#find$1259 loop $while-continue|0 local.get $3 if @@ -10203,7 +9898,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1393 + br $__inlined_func$~lib/map/Map#find$1259 end local.get $4 i32.const -2 @@ -10694,6 +10389,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -10704,12 +10400,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $2 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10717,89 +10413,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 15 call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.tee $5 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -10810,19 +10454,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -10834,12 +10478,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -10851,17 +10495,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -10874,17 +10518,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -10896,12 +10540,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -10914,19 +10558,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -10938,12 +10582,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -10955,17 +10599,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -10978,10 +10622,189 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.tee $1 + local.get $5 i32.store offset=4 - local.get $2 + local.get $1 + block $__inlined_func$~lib/map/Map#keys$9 (result i32) + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=8 + local.set $7 + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array#constructor|default + local.get $8 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $9 + local.get $4 + i32.store + local.get $9 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $9 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $1 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + br $__inlined_func$~lib/map/Map#keys$9 + end + br $folding-inner1 + end + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $5 + i32.store offset=4 + local.get $1 + local.get $5 + call $~lib/map/Map#values + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10994,287 +10817,38 @@ i64.const 0 i64.store local.get $4 - local.get $3 + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $3 - i32.load offset=8 - local.set $5 + global.get $~lib/memory/__stack_pointer local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 + i32.store offset=4 + local.get $4 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $7 - local.get $0 - i32.store - local.get $7 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.store offset=16 + local.get $2 + local.get $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11285,14 +10859,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 - local.get $7 + local.get $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -11304,33 +10878,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.tee $6 + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=4 - local.get $1 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $6 + local.get $5 + local.get $7 call $~lib/map/Map#has i32.eqz if @@ -11342,10 +10916,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $6 i32.const 20 i32.sub call $~lib/map/Map#has @@ -11359,33 +10933,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -11398,9 +10972,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -11413,17 +10987,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -11435,12 +11009,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -11453,16 +11027,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -11472,17 +11046,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -11495,17 +11069,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -11516,19 +11090,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -11540,16 +11114,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -11559,17 +11133,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -11582,14 +11156,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size if i32.const 0 @@ -12487,7 +12061,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#clear + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -13657,6 +13231,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -13667,12 +13242,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $2 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13680,89 +13255,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 18 call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 + local.tee $5 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -13773,19 +13296,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -13797,12 +13320,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -13814,17 +13337,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -13837,17 +13360,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -13859,12 +13382,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -13877,19 +13400,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -13901,12 +13424,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -13918,17 +13441,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -13941,35 +13464,190 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.tee $1 + local.get $5 i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + block $__inlined_func$~lib/map/Map#keys$11 (result i32) + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=8 + local.set $7 + local.get $6 + local.get $5 + i32.store + local.get $5 + i32.load offset=16 + local.set $8 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + call $~lib/array/Array#constructor|default + local.get $8 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $8 + local.get $8 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $9 + local.get $4 + i32.store + local.get $9 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=4 + local.get $9 + local.get $8 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $9 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + local.get $1 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store + local.get $9 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + br $__inlined_func$~lib/map/Map#keys$11 + end + br $folding-inner1 + end + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.tee $1 + local.get $5 + i32.store offset=4 + local.get $1 + local.get $5 + call $~lib/map/Map#values + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=8 - local.set $5 - local.get $4 - local.get $3 - i32.store - local.get $3 - i32.load offset=16 - local.set $6 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13977,267 +13655,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 19 + local.get $4 + i32.const 24 + i32.const 20 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $4 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $7 - local.get $0 - i32.store - local.get $7 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $4 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=8 - local.get $2 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.store offset=16 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $4 + i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 + local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14248,14 +13701,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 - local.get $7 + local.get $6 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -14267,33 +13720,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $7 + local.tee $6 + local.get $0 i32.store - local.get $7 + local.get $0 i32.load offset=4 - local.get $1 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $6 + local.get $5 + local.get $7 call $~lib/map/Map#has i32.eqz if @@ -14305,10 +13758,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 local.get $5 + local.get $6 i32.const 20 i32.sub call $~lib/map/Map#has @@ -14322,33 +13775,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $6 i32.const 20 i32.sub - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -14361,9 +13814,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -14376,17 +13829,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -14398,12 +13851,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -14416,16 +13869,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -14435,17 +13888,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -14458,17 +13911,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -14479,19 +13932,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has i32.eqz if @@ -14503,16 +13956,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#has if i32.const 0 @@ -14522,17 +13975,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -14545,14 +13998,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size if i32.const 0 @@ -14575,6 +14028,86 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/map/Map#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -15429,58 +14962,138 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (func $~lib/map/Map#constructor|default (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - local.get $3 - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + local.get $3 + local.get $0 + i32.store local.get $4 local.get $1 i32.wrap_i64 @@ -15531,7 +15144,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1403 + block $__inlined_func$~lib/map/Map#find$1269 loop $while-continue|0 local.get $3 if @@ -15553,7 +15166,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1403 + br $__inlined_func$~lib/map/Map#find$1269 end local.get $4 i32.const -2 @@ -16057,86 +15670,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $std/map/testNumeric (local $0 i32) (local $1 i64) @@ -16148,6 +15681,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -16158,12 +15692,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $3 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16171,78 +15705,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + local.get $5 i32.const 24 i32.const 21 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.get $7 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 + local.get $7 i32.store loop $for-loop|0 local.get $1 @@ -16250,9 +15732,9 @@ i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -16264,9 +15746,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -16274,9 +15756,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -16289,9 +15771,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -16315,9 +15797,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -16337,9 +15819,9 @@ i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -16352,9 +15834,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -16371,9 +15853,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -16381,9 +15863,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -16396,9 +15878,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -16422,9 +15904,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -16437,301 +15919,233 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=16 - local.set $7 - local.get $3 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $8 - local.get $3 - i32.store - local.get $8 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.tee $4 local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 i32.store offset=4 - loop $for-loop|00 - local.get $2 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + local.get $4 + block $__inlined_func$~lib/map/Map#keys$19 (result i32) + local.get $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $8 + i64.const 0 + i64.store + local.get $8 + local.get $7 + i32.store + local.get $7 + i32.load offset=8 + local.set $4 + local.get $8 + local.get $7 + i32.store + local.get $7 + i32.load offset=16 + local.set $9 + local.get $8 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i64.const 0 + i64.store offset=8 + local.get $5 + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + call $~lib/array/Array#constructor|default + local.get $9 + i32.const 134217727 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $9 + local.get $9 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $5 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $10 + local.get $6 + i32.store + local.get $10 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $8 + local.get $10 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $9 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + local.get $5 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + br $__inlined_func$~lib/map/Map#keys$19 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $3 - local.get $5 - i32.store - local.get $3 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $3 - local.get $5 i32.store offset=8 - local.get $3 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $2 + local.get $7 i32.store offset=4 - local.get $3 - i32.const 4 + local.get $2 + local.get $7 + call $~lib/map/Map#values + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + local.get $5 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $5 + local.tee $4 i32.store offset=20 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16746,10 +16160,10 @@ i32.const 0 i32.store local.get $6 - local.get $8 + local.get $0 i32.store - local.get $2 - local.get $8 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -16762,11 +16176,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $6 - local.get $8 + local.get $0 i32.store - local.get $8 + local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add @@ -16777,16 +16191,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -16799,9 +16213,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $6 i32.const 20 i32.sub @@ -16817,33 +16231,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 local.get $1 local.get $1 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 local.get $6 i32.const 20 i32.sub local.tee $6 local.get $6 call $~lib/map/Map#set - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -16856,9 +16270,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -16878,9 +16292,9 @@ i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -16893,9 +16307,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -16912,15 +16326,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -16939,9 +16353,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -16961,9 +16375,9 @@ i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -16975,9 +16389,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -16985,9 +16399,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -17000,15 +16414,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -17027,9 +16441,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -17042,14 +16456,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear + local.get $7 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size if i32.const 0 @@ -17832,7 +17246,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1408 + block $__inlined_func$~lib/map/Map#find$1274 loop $while-continue|0 local.get $3 if @@ -17854,7 +17268,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1408 + br $__inlined_func$~lib/map/Map#find$1274 end local.get $4 i32.const -2 @@ -18369,6 +17783,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -18379,12 +17794,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.const 24 memory.fill - local.get $3 - i32.const 12 + local.get $4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18392,78 +17807,26 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 + local.get $5 i32.const 24 i32.const 24 call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.tee $7 i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 + local.get $7 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 + local.get $7 i32.store loop $for-loop|0 local.get $1 @@ -18471,9 +17834,9 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -18485,9 +17848,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -18495,9 +17858,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -18510,9 +17873,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -18536,9 +17899,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -18558,9 +17921,9 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -18573,9 +17936,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -18592,9 +17955,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -18602,9 +17965,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -18617,9 +17980,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -18643,9 +18006,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -18658,204 +18021,190 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 - i32.store - local.get $4 - i32.load offset=16 - local.set $7 - local.get $3 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $8 - local.get $3 - i32.store - local.get $8 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.tee $4 local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 i32.store offset=4 - loop $for-loop|00 - local.get $2 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 4 + local.get $4 + block $__inlined_func$~lib/map/Map#keys$27 (result i32) + local.get $4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $8 + i64.const 0 + i64.store + local.get $8 + local.get $7 + i32.store + local.get $7 + i32.load offset=8 + local.set $4 + local.get $8 + local.get $7 + i32.store + local.get $7 + i32.load offset=16 + local.set $9 + local.get $8 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i64.const 0 + i64.store offset=8 + local.get $5 + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + call $~lib/array/Array#constructor|default + local.get $9 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $9 + local.get $9 + i32.const 8 + i32.le_u + select + i32.const 3 i32.shl - i32.add - local.tee $3 - i32.load offset=12 + local.tee $5 i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $10 + local.get $6 + i32.store + local.get $10 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + local.get $10 + i32.store offset=4 + loop $for-loop|01 + local.get $2 + local.get $9 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $5 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + local.get $5 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $10 + br $__inlined_func$~lib/map/Map#keys$27 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.tee $2 + local.get $7 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + local.get $7 call $~lib/map/Map#values - local.tee $0 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18863,96 +18212,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i64.const 0 i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 + local.get $5 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $3 - local.get $5 - i32.store - local.get $3 local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 - local.get $3 - local.get $5 - i32.store offset=8 - local.get $3 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $5 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $5 + local.tee $4 i32.store offset=20 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18967,10 +18262,10 @@ i32.const 0 i32.store local.get $6 - local.get $8 + local.get $0 i32.store - local.get $2 - local.get $8 + local.get $3 + local.get $0 i32.load offset=12 i32.ge_u if @@ -18983,11 +18278,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $6 - local.get $8 + local.get $0 i32.store - local.get $8 + local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add @@ -18998,16 +18293,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -19020,9 +18315,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $6 i32.const 20 i32.sub @@ -19038,33 +18333,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 local.get $1 local.get $1 call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 local.get $6 i32.const 20 i32.sub local.tee $6 local.get $6 call $~lib/map/Map#set - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -19077,9 +18372,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/map/Map#get:size i32.const 100 i32.ne @@ -19099,9 +18394,9 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -19114,9 +18409,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#get local.get $1 @@ -19133,15 +18428,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -19160,9 +18455,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -19182,9 +18477,9 @@ i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -19196,9 +18491,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 local.get $1 i32.wrap_i64 @@ -19206,9 +18501,9 @@ i32.add call $~lib/map/Map#set global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has i32.eqz @@ -19221,15 +18516,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 local.get $1 call $~lib/map/Map#has if @@ -19248,9 +18543,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size i32.const 50 i32.ne @@ -19263,14 +18558,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear + local.get $7 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=4 - local.get $4 + local.get $7 call $~lib/map/Map#get:size if i32.const 0 @@ -19910,9 +19205,9 @@ (func $~lib/map/Map#keys (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -19920,35 +19215,35 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 local.get $0 i32.store local.get $0 - i32.load offset=8 - local.set $4 - local.get $6 + i32.load offset=8 + local.set $5 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.set $7 + local.get $1 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -19960,36 +19255,14 @@ i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.tee $2 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 local.get $2 + call $~lib/array/Array#constructor|default + local.get $7 i32.const 268435455 i32.gt_u if @@ -20002,8 +19275,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 8 i32.le_u select @@ -20012,94 +19285,96 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store - local.get $7 - local.get $8 + local.get $2 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 local.get $2 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $1 + local.get $2 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $6 + local.get $7 + i32.lt_s if - local.get $4 - local.get $3 + local.get $5 + local.get $6 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $6 - f32.load - local.set $5 + local.set $0 local.get $8 + f32.load + local.set $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store - local.get $6 - local.get $7 + local.get $4 + local.get $2 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $2 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -20110,56 +19385,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $6 + local.get $2 + local.get $4 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $7 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $3 f32.store - local.get $6 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 return end i32.const 34688 @@ -20722,7 +19997,7 @@ i32.const 24 memory.fill local.get $2 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20734,9 +20009,6 @@ i64.const 0 i64.store local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 i32.const 24 i32.const 27 call $~lib/rt/itcms/__new @@ -20745,59 +20017,10 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 local.get $3 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -21015,7 +20238,7 @@ global.get $~lib/memory/__stack_pointer local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21027,9 +20250,6 @@ i64.const 0 i64.store local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new @@ -21038,59 +20258,10 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 local.get $6 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $5 @@ -21424,7 +20595,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map#clear + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 @@ -22124,9 +21295,9 @@ (func $~lib/map/Map#keys (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -22134,35 +21305,35 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $5 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.set $7 + local.get $1 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -22174,36 +21345,14 @@ i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.tee $2 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 local.get $2 + call $~lib/array/Array#constructor|default + local.get $7 i32.const 134217727 i32.gt_u if @@ -22216,8 +21365,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 8 i32.le_u select @@ -22226,94 +21375,96 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store - local.get $7 - local.get $8 + local.get $2 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 local.get $2 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $1 + local.get $2 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $6 + local.get $7 + i32.lt_s if - local.get $4 - local.get $3 + local.get $5 + local.get $6 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $8 i32.load offset=12 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $6 - f64.load - local.set $5 + local.set $0 local.get $8 + f64.load + local.set $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store - local.get $6 - local.get $7 + local.get $4 + local.get $2 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $2 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -22324,56 +21475,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $6 + local.get $2 + local.get $4 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $7 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $5 + local.get $3 f64.store - local.get $6 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 return end i32.const 34688 @@ -22488,7 +21639,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1418 + block $__inlined_func$~lib/map/Map#find$1285 loop $while-continue|0 local.get $3 if @@ -22510,7 +21661,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1418 + br $__inlined_func$~lib/map/Map#find$1285 end local.get $4 i32.const -2 @@ -23043,7 +22194,7 @@ i32.const 24 memory.fill local.get $2 - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23055,9 +22206,6 @@ i64.const 0 i64.store local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 i32.const 24 i32.const 30 call $~lib/rt/itcms/__new @@ -23066,59 +22214,10 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - i32.store offset=8 - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 local.get $3 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=20 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -23336,7 +22435,7 @@ global.get $~lib/memory/__stack_pointer local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23348,9 +22447,6 @@ i64.const 0 i64.store local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 i32.const 24 i32.const 32 call $~lib/rt/itcms/__new @@ -23359,59 +22455,10 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - i32.store offset=8 - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 local.get $6 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $5 @@ -23745,7 +22792,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map#clear + call $~lib/map/Map#constructor|default global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 5b911b3d42..89a8cab480 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -2358,6 +2358,37 @@ unreachable end ) + (func $std/new/AClass#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 1 + call $std/new/AClass#set:aField + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f32.const 2 + call $std/new/AClass#set:anotherField + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $std/new/AClass#constructor (param $this i32) (param $value f32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2387,16 +2418,7 @@ local.get $2 i32.store offset=4 local.get $2 - i32.const 1 - call $std/new/AClass#set:aField - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 2 - call $std/new/AClass#set:anotherField + call $std/new/AClass#constructor|default local.get $this local.set $2 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index b019ac621c..6ce580a28f 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -122,7 +122,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$113 + block $__inlined_func$~lib/rt/itcms/Object#unlink$115 local.get $1 i32.load offset=4 i32.const -4 @@ -146,7 +146,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$113 + br $__inlined_func$~lib/rt/itcms/Object#unlink$115 end local.get $1 i32.load offset=8 @@ -1410,46 +1410,117 @@ (func $~start (local $0 i32) (local $1 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1464 - i32.lt_s - if + block $__inlined_func$start:std/new$1 + memory.size + i32.const 16 + i32.shl + i32.const 34232 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1464 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1464 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + f32.const 2 + f32.store offset=4 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load + i32.const 1 + i32.add + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 3 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std/new/aClass + br $__inlined_func$start:std/new$1 + end i32.const 34256 i32.const 34304 i32.const 1 @@ -1457,53 +1528,5 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 2 - f32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.add - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - f32.const 3 - f32.store offset=4 - local.get $0 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - global.set $std/new/aClass ) ) diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 2b9cc560d4..91dffc32b3 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -4718,34 +4718,21 @@ unreachable end ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -4755,14 +4742,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -4772,7 +4759,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -4785,14 +4772,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -4800,7 +4787,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -4808,14 +4795,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -5337,6 +5356,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -5370,32 +5436,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 0 @@ -6569,34 +6610,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -6606,14 +6634,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -6623,7 +6651,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -6636,14 +6664,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -6651,7 +6679,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -6659,14 +6687,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -7190,6 +7250,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -7223,34 +7330,9 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 + call $~lib/array/Array#constructor|default + local.get $length + i32.const 1073741820 i32.const 0 i32.shr_u i32.gt_u @@ -8303,34 +8385,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -8340,14 +8409,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -8357,7 +8426,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -8370,14 +8439,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -8385,7 +8454,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -8393,14 +8462,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -8922,6 +9023,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -8955,32 +9103,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 1 @@ -10035,34 +10158,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -10072,14 +10182,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -10089,7 +10199,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -10102,14 +10212,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -10117,7 +10227,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -10125,14 +10235,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -10656,65 +10798,87 @@ local.get $1 return ) - (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $bufferSize i32) - (local $buffer i32) - (local $6 i32) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 - call $~lib/array/Array#set:buffer + i32.store local.get $this - local.set $6 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.const 0 call $~lib/array/Array#set:dataStart local.get $this - local.set $6 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $1 + i32.store + local.get $1 i32.const 0 call $~lib/array/Array#set:byteLength local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $bufferSize i32) + (local $buffer i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 1 @@ -11769,34 +11933,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -11806,14 +11957,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -11823,7 +11974,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -11836,14 +11987,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -11851,7 +12002,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -11859,14 +12010,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -12386,6 +12569,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -12419,32 +12649,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -13499,34 +13704,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -13536,14 +13728,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -13553,7 +13745,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -13566,14 +13758,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -13581,7 +13773,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -13589,35 +13781,67 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/set/Set#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $taggedNext i32) - (local $5 i32) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $taggedNext i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store local.get $5 call $~lib/set/Set#get:buckets local.get $hashCode @@ -14116,6 +14340,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -14149,32 +14420,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -15229,34 +15475,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -15266,14 +15499,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -15283,7 +15516,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -15296,14 +15529,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -15311,7 +15544,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -15319,14 +15552,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -15846,6 +16111,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -15879,32 +16191,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 @@ -16960,34 +17247,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -16997,14 +17271,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -17014,7 +17288,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -17027,14 +17301,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -17042,7 +17316,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -17050,14 +17324,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -17577,6 +17883,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -17610,32 +17963,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 @@ -18691,34 +19019,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -18728,14 +19043,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -18745,7 +19060,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -18758,14 +19073,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -18773,7 +19088,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -18781,14 +19096,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -19308,6 +19655,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -19341,32 +19735,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 2 @@ -20422,34 +20791,21 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (param $this i32) (result i32) + (func $~lib/set/Set#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -20459,14 +20815,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -20476,7 +20832,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -20489,14 +20845,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/set/Set#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/set/Set#set:entriesCapacity @@ -20504,7 +20860,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesOffset @@ -20512,14 +20868,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -21039,6 +21427,53 @@ local.get $1 return ) + (func $~lib/array/Array#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#set:length_ + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/Array#constructor (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -21072,32 +21507,7 @@ local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:dataStart - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:byteLength - local.get $this - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/array/Array#set:length_ + call $~lib/array/Array#constructor|default local.get $length i32.const 1073741820 i32.const 3 diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index a6c2a1163b..c7c3fe9ad9 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -125,7 +125,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$904 + block $__inlined_func$~lib/rt/itcms/Object#unlink$811 local.get $0 i32.load offset=4 i32.const -4 @@ -149,7 +149,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$904 + br $__inlined_func$~lib/rt/itcms/Object#unlink$811 end local.get $0 i32.load offset=8 @@ -1780,11 +1780,10 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) + (func $~lib/set/Set#constructor|default (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1799,27 +1798,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store + local.get $1 local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store @@ -1828,19 +1818,19 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 @@ -1849,24 +1839,61 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#constructor|default + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2427,6 +2454,59 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/array/Array#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) @@ -2507,7 +2587,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$893 + block $__inlined_func$~lib/rt/itcms/__renew$798 local.get $4 i32.const 20 i32.sub @@ -2525,7 +2605,7 @@ i32.store offset=16 local.get $4 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$893 + br $__inlined_func$~lib/rt/itcms/__renew$798 end local.get $1 local.get $3 @@ -2898,86 +2978,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $std/set/testNumeric (local $0 i32) (local $1 i32) @@ -2987,6 +2987,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3133,216 +3134,199 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add + block $__inlined_func$~lib/set/Set#values$2 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 1073741820 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + local.tee $8 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$2 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -3356,27 +3340,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -3546,7 +3530,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3575,9 +3559,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3596,9 +3579,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new @@ -3607,59 +3587,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -4312,6 +4243,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -4458,216 +4390,199 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if + block $__inlined_func$~lib/set/Set#values$3 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 1748 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store local.get $6 - i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$3 + end + br $folding-inner1 + end + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $2 + i32.store offset=12 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/array/Array#get:length + local.get $4 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $1 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -4681,27 +4596,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -4871,7 +4786,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -4900,9 +4815,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4921,9 +4835,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new @@ -4932,59 +4843,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -5824,6 +5686,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -5970,218 +5833,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add + block $__inlined_func$~lib/set/Set#values$4 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 536870910 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select i32.const 1 + i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$4 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -6195,27 +6041,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -6385,7 +6231,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -6414,9 +6260,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6435,70 +6280,18 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -7153,6 +6946,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -7299,218 +7093,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if + block $__inlined_func$~lib/set/Set#values$5 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default local.get $3 - local.get $2 - i32.const 3 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 1 i32.shl - i32.add - local.tee $7 - i32.load offset=4 + local.tee $8 i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$5 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -7524,27 +7301,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -7714,7 +7491,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -7743,9 +7520,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7764,9 +7540,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 12 call $~lib/rt/itcms/__new @@ -7775,59 +7548,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -8661,6 +8385,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -8807,218 +8532,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.tee $0 + local.get $1 i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add + local.get $0 + block $__inlined_func$~lib/set/Set#values$6 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default + local.get $3 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $8 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$6 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -9032,27 +8740,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -9222,7 +8930,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -9250,92 +8958,39 @@ unreachable ) (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + (local $0 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -10062,6 +9717,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -10208,218 +9864,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 - i32.store offset=4 - local.get $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - i32.store local.get $1 - i32.load offset=16 - local.set $4 - local.get $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 16 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $4 - i32.lt_s - if + block $__inlined_func$~lib/set/Set#values$7 (result i32) + local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + local.get $6 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $3 + local.get $6 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#constructor|default local.get $3 - local.get $2 - i32.const 3 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 i32.shl + local.tee $8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $7 + local.get $0 + i32.store + local.get $7 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $6 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $7 + br $__inlined_func$~lib/set/Set#values$7 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $6 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=16 local.get $1 - local.get $6 - local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -10433,27 +10072,27 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 local.get $3 - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 + i32.store offset=16 local.get $2 + local.get $0 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer @@ -10623,7 +10262,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -10650,11 +10289,10 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) + (func $~lib/set/Set#constructor|default (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10669,27 +10307,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store + local.get $1 local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store @@ -10698,19 +10327,19 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 @@ -10719,24 +10348,61 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#constructor|default + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -11612,90 +11278,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11703,6 +11289,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -11713,24 +11300,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $7 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -11741,16 +11328,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11761,17 +11348,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11784,17 +11371,17 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11806,16 +11393,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11826,17 +11413,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11849,216 +11436,199 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store offset=4 - local.get $8 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $7 - i32.store - local.get $7 - i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 - i32.store - local.get $7 - i32.load offset=16 - local.set $4 - local.get $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i64.const 0 - i64.store offset=8 - local.get $5 - i32.const 16 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $5 - local.get $6 - i32.store - local.get $5 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.tee $4 + local.get $1 i32.store offset=4 - local.get $5 local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|00 - local.get $2 + block $__inlined_func$~lib/set/Set#values$12 (result i32) local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 4 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $9 + i64.const 0 + i64.store + local.get $9 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $6 + local.get $9 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $4 + local.get $9 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i64.const 0 + i64.store + local.get $7 + i64.const 0 + i64.store offset=8 + local.get $7 + i32.const 16 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + call $~lib/array/Array#constructor|default + local.get $4 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 3 i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $10 + local.get $8 + i32.store + local.get $10 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.get $6 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + global.set $~lib/memory/__stack_pointer + local.get $9 + local.get $10 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $10 + br $__inlined_func$~lib/set/Set#values$12 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $5 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 - local.get $5 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $5 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=16 - local.get $7 + local.get $1 + local.get $0 local.get $5 - local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -12071,34 +11641,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 + local.tee $4 local.get $3 - local.get $5 + i32.store offset=4 + local.get $4 + local.get $0 i32.store offset=16 + local.get $3 local.get $0 local.get $5 - local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $5 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size local.get $0 i32.ne @@ -12111,17 +11681,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -12133,16 +11703,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12152,17 +11722,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12175,17 +11745,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12196,16 +11766,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -12217,16 +11787,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12236,17 +11806,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12259,14 +11829,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - call $~lib/set/Set#clear + local.get $1 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size if i32.const 0 @@ -12291,9 +11861,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12312,9 +11881,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 18 call $~lib/rt/itcms/__new @@ -12323,59 +11889,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -13146,8 +12663,8 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13155,6 +12672,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -13165,24 +12683,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $7 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13193,16 +12711,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13213,17 +12731,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13236,17 +12754,17 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13258,16 +12776,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13278,17 +12796,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13301,216 +12819,199 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 - i32.store offset=4 - local.get $8 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $7 - i32.store - local.get $7 - i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 - i32.store - local.get $7 - i32.load offset=16 - local.set $4 - local.get $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i64.const 0 - i64.store offset=8 - local.get $5 - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $5 - local.get $6 - i32.store - local.get $5 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.tee $4 + local.get $1 i32.store offset=4 - local.get $5 local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|00 - local.get $2 + block $__inlined_func$~lib/set/Set#values$17 (result i32) local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $6 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $9 + i64.const 0 + i64.store + local.get $9 + local.get $1 + i32.store + local.get $1 i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.set $6 + local.get $9 + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $4 + local.get $9 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i64.const 0 + i64.store + local.get $7 + i64.const 0 + i64.store offset=8 + local.get $7 + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + call $~lib/array/Array#constructor|default + local.get $4 + i32.const 134217727 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - local.get $6 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $10 + local.get $8 + i32.store + local.get $10 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + local.get $10 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + local.get $10 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + local.get $10 + br $__inlined_func$~lib/set/Set#values$17 end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $5 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=12 - i32.const 0 - local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 - local.get $5 + local.get $0 call $~lib/array/Array#get:length - local.get $2 + local.get $5 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=16 - local.get $7 + local.get $1 + local.get $0 local.get $5 - local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13523,34 +13024,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 + local.tee $4 local.get $3 - local.get $5 + i32.store offset=4 + local.get $4 + local.get $0 i32.store offset=16 + local.get $3 local.get $0 local.get $5 - local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 + local.set $5 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size local.get $0 i32.ne @@ -13563,17 +13064,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13585,16 +13086,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13604,17 +13105,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -13627,17 +13128,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13648,16 +13149,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13669,16 +13170,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13688,17 +13189,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -13711,14 +13212,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - call $~lib/set/Set#clear + local.get $1 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size if i32.const 0 @@ -13743,9 +13244,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13764,9 +13264,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new @@ -13775,59 +13272,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -14357,9 +13805,9 @@ (func $~lib/set/Set#values (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -14367,35 +13815,35 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $5 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.set $7 + local.get $1 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -14407,36 +13855,14 @@ i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.tee $2 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 local.get $2 + call $~lib/array/Array#constructor|default + local.get $7 i32.const 268435455 i32.gt_u if @@ -14449,8 +13875,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 8 i32.le_u select @@ -14459,94 +13885,96 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store - local.get $7 - local.get $8 + local.get $2 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 local.get $2 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $1 + local.get $2 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $6 + local.get $7 + i32.lt_s if - local.get $4 - local.get $3 + local.get $5 + local.get $6 i32.const 3 i32.shl i32.add - local.tee $6 + local.tee $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $6 - f32.load - local.set $5 + local.set $0 local.get $8 + f32.load + local.set $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store - local.get $6 - local.get $7 + local.get $4 + local.get $2 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $2 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -14557,56 +13985,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $6 + local.get $2 + local.get $4 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $7 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $3 f32.store - local.get $6 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 return end i32.const 34544 @@ -15206,7 +14634,7 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 @@ -15227,9 +14655,8 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15248,9 +14675,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new @@ -15259,59 +14683,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=20 + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -15883,9 +15258,9 @@ (func $~lib/set/Set#values (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -15893,35 +15268,35 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $5 + local.get $1 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + local.set $7 + local.get $1 i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -15933,36 +15308,14 @@ i32.const 16 i32.const 23 call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.tee $2 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 local.get $2 + call $~lib/array/Array#constructor|default + local.get $7 i32.const 134217727 i32.gt_u if @@ -15975,8 +15328,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 8 i32.le_u select @@ -15985,94 +15338,96 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store - local.get $7 - local.get $8 + local.get $2 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 local.get $2 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $1 + local.get $2 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $6 + local.get $7 + i32.lt_s if - local.get $4 - local.get $3 + local.get $5 + local.get $6 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $6 - f64.load - local.set $5 + local.set $0 local.get $8 + f64.load + local.set $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store - local.get $6 - local.get $7 + local.get $4 + local.get $2 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $2 i32.load offset=12 i32.ge_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -16083,56 +15438,56 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $6 + local.get $2 + local.get $4 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.tee $4 + local.get $2 i32.store - local.get $7 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $5 + local.get $3 f64.store - local.get $6 + local.get $4 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 return end i32.const 34544 @@ -16746,7 +16101,7 @@ local.get $4 i32.store offset=4 local.get $4 - call $~lib/set/Set#clear + call $~lib/set/Set#constructor|default global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index d08b3e59f9..4def061d60 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -2883,34 +2883,21 @@ unreachable end ) - (func $~lib/map/Map<~lib/string/String,usize>#constructor (param $this i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -2920,14 +2907,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map<~lib/string/String,usize>#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -2937,7 +2924,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -2950,14 +2937,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map<~lib/string/String,usize>#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity @@ -2965,7 +2952,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset @@ -2973,14 +2960,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,usize>#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -3989,34 +4008,21 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $~lib/map/Map#constructor|default (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -4026,14 +4032,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:buckets local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 i32.const 1 @@ -4043,7 +4049,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 i32.const 4 @@ -4056,14 +4062,14 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $~lib/map/Map#set:entries local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 4 call $~lib/map/Map#set:entriesCapacity @@ -4071,7 +4077,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesOffset @@ -4079,14 +4085,46 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 i32.const 0 call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/map/Map#constructor|default + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index a61bac0756..dc836fad47 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func (param i32 i32) (result i32))) (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32) (result i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -206,7 +206,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$246 + block $__inlined_func$~lib/rt/itcms/Object#unlink$241 local.get $0 i32.load offset=4 i32.const -4 @@ -230,7 +230,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$246 + br $__inlined_func$~lib/rt/itcms/Object#unlink$241 end local.get $0 i32.load offset=8 @@ -1870,6 +1870,88 @@ global.set $~started call $start:std/symbol ) + (func $~lib/map/Map<~lib/string/String,usize>#constructor|default (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + if + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -2210,7 +2292,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$88 + block $__inlined_func$~lib/util/string/compareImpl$89 loop $while-continue|1 local.get $0 local.tee $3 @@ -2230,7 +2312,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 + br_if $__inlined_func$~lib/util/string/compareImpl$89 local.get $2 i32.const 2 i32.add @@ -3546,7 +3628,7 @@ local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$253 (result i32) + block $__inlined_func$~lib/string/String#concat$248 (result i32) local.get $2 local.get $0 i32.store @@ -3595,7 +3677,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1888 - br $__inlined_func$~lib/string/String#concat$253 + br $__inlined_func$~lib/string/String#concat$248 end global.get $~lib/memory/__stack_pointer local.get $4 @@ -3903,7 +3985,7 @@ i32.const 1424 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3915,9 +3997,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new @@ -3926,67 +4005,16 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + call $~lib/map/Map<~lib/string/String,usize>#constructor|default global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3998,9 +4026,6 @@ i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 24 i32.const 5 call $~lib/rt/itcms/__new @@ -4009,61 +4034,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=16 + call $~lib/map/Map<~lib/string/String,usize>#constructor|default global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index cb0ef031ee..77736f9145 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -14329,6 +14329,45 @@ unreachable end ) + (func $~lib/arraybuffer/ArrayBufferView#constructor|default (param $this i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:dataStart + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:byteLength + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) (local $4 i32) @@ -14359,24 +14398,7 @@ local.get $4 i32.store offset=4 local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength + call $~lib/arraybuffer/ArrayBufferView#constructor|default local.get $length i32.const 1073741820 local.get $alignLog2 diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 7ea4d1b913..8d082f00d6 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -767,7 +767,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1388 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1390 local.get $0 i32.load offset=4 i32.const -4 @@ -791,7 +791,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1388 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1390 end local.get $0 i32.load offset=8 @@ -9440,106 +9440,128 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store local.get $3 - i32.const 12 - i32.const 3 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + local.get $3 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store offset=4 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.shl - local.tee $1 + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -12480,7 +12502,7 @@ i32.lt_s select local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$202 + block $__inlined_func$~lib/util/bytes/FILL$203 local.get $1 i32.eqz local.get $1 @@ -12505,7 +12527,7 @@ i32.shl memory.fill end - br $__inlined_func$~lib/util/bytes/FILL$202 + br $__inlined_func$~lib/util/bytes/FILL$203 end loop $for-loop|0 local.get $0 @@ -36225,7 +36247,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$714 + block $__inlined_func$~lib/util/string/compareImpl$715 loop $while-continue|1 local.get $0 local.tee $3 @@ -36245,7 +36267,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$714 + br_if $__inlined_func$~lib/util/string/compareImpl$715 local.get $2 i32.const 2 i32.add @@ -37706,7 +37728,7 @@ local.tee $0 i32.const 0 i32.store - block $__inlined_func$~lib/util/number/utoa64$749 + block $__inlined_func$~lib/util/number/utoa64$750 local.get $3 i64.eqz if @@ -37716,7 +37738,7 @@ global.set $~lib/memory/__stack_pointer i32.const 8000 local.set $1 - br $__inlined_func$~lib/util/number/utoa64$749 + br $__inlined_func$~lib/util/number/utoa64$750 end local.get $3 i64.const 4294967295 @@ -38061,7 +38083,7 @@ local.tee $0 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1393 + block $__inlined_func$~lib/util/string/joinFloatArray$1395 local.get $2 i32.const 1 i32.sub @@ -38075,7 +38097,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + br $__inlined_func$~lib/util/string/joinFloatArray$1395 end local.get $3 i32.eqz @@ -38089,7 +38111,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + br $__inlined_func$~lib/util/string/joinFloatArray$1395 end global.get $~lib/memory/__stack_pointer local.tee $0 @@ -38189,7 +38211,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + br $__inlined_func$~lib/util/string/joinFloatArray$1395 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -38257,7 +38279,7 @@ local.tee $0 i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1394 + block $__inlined_func$~lib/util/string/joinFloatArray$1396 local.get $2 i32.const 1 i32.sub @@ -38271,7 +38293,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + br $__inlined_func$~lib/util/string/joinFloatArray$1396 end local.get $3 i32.eqz @@ -38284,7 +38306,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + br $__inlined_func$~lib/util/string/joinFloatArray$1396 end global.get $~lib/memory/__stack_pointer local.tee $0 @@ -38382,7 +38404,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + br $__inlined_func$~lib/util/string/joinFloatArray$1396 end global.get $~lib/memory/__stack_pointer i32.const 8