From 34317bbf15c615e0d392cfbf7cd9cf556d38feb5 Mon Sep 17 00:00:00 2001 From: dcode Date: Wed, 26 Oct 2022 19:56:52 +0200 Subject: [PATCH 01/13] prepare --- src/ast.ts | 9 ++ src/bindings/js.ts | 5 +- src/bindings/tsd.ts | 6 +- src/compiler.ts | 7 +- src/passes/shadowstack.ts | 6 +- src/program.ts | 241 +++++++++++++++++++++++++++++++++++--- 6 files changed, 252 insertions(+), 22 deletions(-) diff --git a/src/ast.ts b/src/ast.ts index 66c8969264..91738904a0 100644 --- a/src/ast.ts +++ b/src/ast.ts @@ -1622,6 +1622,15 @@ export const enum SourceKind { /** A top-level source node. */ export class Source extends Node { + + /** Gets the special native source. */ + static get native(): Source { + let source = Source._native; + if (!source) Source._native = source = new Source(SourceKind.LibraryEntry, LIBRARY_PREFIX + "native.ts", "[native code]"); + return source; + } + private static _native: Source | null = null; + constructor( /** Source kind. */ public sourceKind: SourceKind, diff --git a/src/bindings/js.ts b/src/bindings/js.ts index 2eae3b3e3e..39ad3ed1fd 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -5,7 +5,8 @@ import { LiteralExpression, StringLiteralExpression, TemplateLiteralExpression, - findDecorator + findDecorator, + Source } from "../ast"; import { @@ -1343,7 +1344,7 @@ function isPlainObject(clazz: Class): bool { if (member.isAny(CommonFlags.Private | CommonFlags.Protected)) return false; if (member.is(CommonFlags.Constructor)) { // a generated constructor is ok - if (member.declaration.range != member.program.nativeRange) return false; + if (member.declaration.range != Source.native.range) return false; } } } diff --git a/src/bindings/tsd.ts b/src/bindings/tsd.ts index 2969d2e5dc..32a9a2b09c 100644 --- a/src/bindings/tsd.ts +++ b/src/bindings/tsd.ts @@ -1,3 +1,7 @@ +import { + Source +} from "../ast"; + import { CommonFlags } from "../common"; @@ -238,7 +242,7 @@ export class TSDBuilder extends ExportsWalker { if (member.isAny(CommonFlags.Private | CommonFlags.Protected)) return false; if (member.is(CommonFlags.Constructor)) { // a generated constructor is ok - if (member.declaration.range != this.program.nativeRange) return false; + if (member.declaration.range != Source.native.range) return false; } } } diff --git a/src/compiler.ts b/src/compiler.ts index fd0ac005bc..3222c25384 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -177,7 +177,8 @@ import { NamedTypeNode, findDecorator, - isTypeOmitted + isTypeOmitted, + Source } from "./ast"; import { @@ -694,7 +695,7 @@ export class Compiler extends DiagnosticEmitter { if (!isIdentifier(exportStart) || module.hasExport(exportStart)) { this.error( DiagnosticCode.Start_function_name_0_is_invalid_or_conflicts_with_another_export, - this.program.nativeRange, exportStart + Source.native.range, exportStart ); } else { module.addFunctionExport(startFunctionInstance.internalName, exportStart); @@ -8050,7 +8051,7 @@ export class Compiler extends DiagnosticEmitter { Node.createCompiledExpression( module.usize(i64_add(arraySegment.offset, i64_new(this.program.totalOverhead))), arrayInstance.type, - this.program.nativeRange + Source.native.range ) ); // TODO: Requires ReadonlyArray to be safe diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 1f9f8eee66..aec8ce8be7 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -148,6 +148,10 @@ import { BuiltinNames } from "../builtins"; +import { + Source +} from "../ast"; + type LocalIndex = Index; type SlotIndex = Index; type SlotMap = Map; @@ -325,7 +329,7 @@ export class ShadowStackPass extends Pass { ), this.compiler.makeStaticAbort( this.compiler.ensureStaticString("stack overflow"), - this.compiler.program.nativeSource + Source.native ) ) ); diff --git a/src/program.ts b/src/program.ts index 421a76618b..b1924d098b 100644 --- a/src/program.ts +++ b/src/program.ts @@ -44,7 +44,6 @@ import { GETTER_PREFIX, SETTER_PREFIX, INNER_DELIMITER, - LIBRARY_PREFIX, INDEX_SUFFIX, STUB_DELIMITER, CommonNames, @@ -111,7 +110,12 @@ import { VariableDeclaration, VariableLikeDeclarationStatement, VariableStatement, - ParameterKind + ParameterKind, + ParameterNode, + ReturnStatement, + CallExpression, + ThisExpression, + TypeName } from "./ast"; import { @@ -430,11 +434,9 @@ export class Program extends DiagnosticEmitter { diagnostics: DiagnosticMessage[] | null = null ) { super(diagnostics); - let nativeSource = new Source(SourceKind.LibraryEntry, LIBRARY_PREFIX + "native.ts", "[native code]"); - this.nativeSource = nativeSource; this.parser = new Parser(this.diagnostics, this.sources); this.resolver = new Resolver(this); - let nativeFile = new File(this, nativeSource); + let nativeFile = new File(this, Source.native); this.nativeFile = nativeFile; this.filesByName.set(nativeFile.internalName, nativeFile); } @@ -447,10 +449,6 @@ export class Program extends DiagnosticEmitter { sources: Source[] = []; /** Diagnostic offset used where successively obtaining the next diagnostic. */ diagnosticsOffset: i32 = 0; - /** Special native code source. */ - nativeSource: Source; - /** Special native code range. */ - get nativeRange(): Range { return this.nativeSource.range; } /** Special native code file. */ nativeFile!: File; /** Next class id. */ @@ -866,7 +864,7 @@ export class Program extends DiagnosticEmitter { /** Flags indicating specific traits, e.g. `CONST`. */ flags: CommonFlags = CommonFlags.None ): VariableDeclaration { - let range = this.nativeSource.range; + let range = Source.native.range; return Node.createVariableDeclaration( Node.createIdentifierExpression(name, range), null, flags, null, null, range @@ -880,7 +878,7 @@ export class Program extends DiagnosticEmitter { /** Flags indicating specific traits, e.g. `GENERIC`. */ flags: CommonFlags = CommonFlags.None ): TypeDeclaration { - let range = this.nativeSource.range; + let range = Source.native.range; let identifier = Node.createIdentifierExpression(name, range); return Node.createTypeDeclaration( identifier, @@ -900,7 +898,7 @@ export class Program extends DiagnosticEmitter { /** Flags indicating specific traits, e.g. `DECLARE`. */ flags: CommonFlags = CommonFlags.None ): FunctionDeclaration { - let range = this.nativeSource.range; + let range = Source.native.range; let signature = this.nativeDummySignature; if (!signature) { this.nativeDummySignature = signature = Node.createFunctionType([], @@ -924,7 +922,7 @@ export class Program extends DiagnosticEmitter { /** Flags indicating specific traits, e.g. `EXPORT`. */ flags: CommonFlags = CommonFlags.None ): NamespaceDeclaration { - let range = this.nativeSource.range; + let range = Source.native.range; return Node.createNamespaceDeclaration( Node.createIdentifierExpression(name, range), null, flags, [], range @@ -3980,6 +3978,8 @@ export class Field extends VariableLikeElement { /** A property comprised of a getter and a setter function. */ export class PropertyPrototype extends DeclaredElement { + /** Field declaration, if a field. */ + fieldDeclaration: FieldDeclaration | null = null; /** Getter prototype. */ getterPrototype: FunctionPrototype | null = null; /** Setter prototype. */ @@ -3990,6 +3990,29 @@ export class PropertyPrototype extends DeclaredElement { /** Clones of this prototype that are bound to specific classes. */ private boundPrototypes: Map | null = null; + /** Creates a property prototype representing a field. */ + static forField(parent: ClassPrototype, fieldDeclaration: FieldDeclaration): PropertyPrototype { + // A field differs from a property in that accessing it is merely a load + // from respectively store to a memory address relative to its `this` + // pointer, not a function call. However, fields can be overloaded with + // properties and vice-versa, creating a situation where they function more + // like properties, using virtual stubs in their accessor functions to + // determine which overload to call. Hence, fields are represented as + // properties, with compiler-generated accessors for cases they are used + // like properties. As a result, emitting actual loads and stores becomes an + // optimization in non-overloaded cases. + let name = fieldDeclaration.name.text; + let getterDeclaration = makeFieldGetterDeclaration(fieldDeclaration, parent); + let prototype = new PropertyPrototype(name, parent, getterDeclaration); + prototype.fieldDeclaration = fieldDeclaration; + prototype.getterPrototype = new FunctionPrototype(GETTER_PREFIX + name, parent, getterDeclaration); + if (!fieldDeclaration.is(CommonFlags.Readonly)) { + let setterDeclaration = makeFieldSetterDeclaration(fieldDeclaration, parent); + prototype.setterPrototype = new FunctionPrototype(SETTER_PREFIX + name, parent, setterDeclaration); + } + return prototype; + } + /** Constructs a new property prototype. */ constructor( /** Simple name. */ @@ -4010,7 +4033,12 @@ export class PropertyPrototype extends DeclaredElement { this.flags &= ~(CommonFlags.Get | CommonFlags.Set); } - /** Tests if this prototype is bound to a class. */ + /** Tests if this property prototype represents a field. */ + get isField(): bool { + return this.fieldDeclaration != null; + } + + /** Tests if this property prototype is bound to a class. */ get isBound(): bool { switch (this.parent.kind) { case ElementKind.Class: @@ -4019,7 +4047,43 @@ export class PropertyPrototype extends DeclaredElement { return false; } - /** Creates a clone of this prototype that is bound to a concrete class instead. */ + /** Gets the associated type node. */ + get typeNode(): TypeNode | null { + let fieldDeclaration = this.fieldDeclaration; + if (fieldDeclaration) return fieldDeclaration.type; + let getterPrototype = this.getterPrototype; + if (getterPrototype) { + let getterDeclaration = getterPrototype.declaration; + if (getterDeclaration.kind == NodeKind.FunctionDeclaration) { + return (getterDeclaration).signature.returnType; + } + } + let setterPrototype = this.setterPrototype; + if (setterPrototype) { + let setterDeclaration = setterPrototype.declaration; + if (setterDeclaration.kind == NodeKind.FunctionDeclaration) { + let setterParameters = (setterDeclaration).signature.parameters; + if (setterParameters.length) return setterParameters[0].type; + } + } + return null; + } + + /** Gets the associated initializer node. */ + get initializerNode(): Expression | null { + let fieldDeclaration = this.fieldDeclaration; + if (fieldDeclaration) return fieldDeclaration.initializer; + return null; + } + + /** Gets the associated parameter index. Set if declared as a constructor parameter, otherwise `-1`. */ + get parameterIndex(): i32 { + let fieldDeclaration = this.fieldDeclaration; + if (fieldDeclaration) return fieldDeclaration.parameterIndex; + return -1; + } + + /** Creates a clone of this property prototype that is bound to a concrete class. */ toBound(classInstance: Class): PropertyPrototype { assert(this.is(CommonFlags.Instance)); assert(!this.isBound); @@ -4056,6 +4120,8 @@ export class Property extends VariableLikeElement { getterInstance: Function | null = null; /** Setter instance. */ setterInstance: Function | null = null; + /** Field memory offset, if a (layed out) instance field. */ + memoryOffset: i32 = -1; /** Constructs a new property prototype. */ constructor( @@ -4085,6 +4151,11 @@ export class Property extends VariableLikeElement { registerConcreteElement(this.program, this); } } + + /** Tests if this property represents a field. */ + get isField(): bool { + return this.prototype.isField; + } } /** A resolved index signature. */ @@ -4861,3 +4932,143 @@ export function getDefaultParameterName(index: i32): string { } return cachedDefaultParameterNames[index]; } + +/** Makes a field getter declaration. */ +function makeFieldGetterDeclaration( + /** The field declaration to make a getter declaration for. */ + fieldDeclaration: FieldDeclaration, + /** The parent class prototype. */ + classPrototype: ClassPrototype +): FunctionDeclaration { + let range = Source.native.range; + let type = fieldDeclaration.type!; // TODO + // get name(): Type { + // return load(changetype(this), offsetof("name")); + // } + return new FunctionDeclaration( + fieldDeclaration.name, + fieldDeclaration.decorators, + fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Get, + null, + new FunctionTypeNode([], type, null, false, range), + new ReturnStatement( + new CallExpression( + new IdentifierExpression("load", false, range), + [ type ], [ + new CallExpression( + new IdentifierExpression("changetype", false, range), + [ + new NamedTypeNode( + new TypeName( + new IdentifierExpression("usize", false, range), + null, range + ), + null, false, range + ) + ], [ + new ThisExpression(range) + ], + range + ), + new CallExpression( + new IdentifierExpression("offsetof", false, range), + [ + new NamedTypeNode( + new TypeName( + new IdentifierExpression(classPrototype.name, false, range), + null, range + ), + null, false, range + ) + ], [ + new StringLiteralExpression(fieldDeclaration.name.text, range) + ], + range + ) + ], + range + ), + range + ), + ArrowKind.None, + range + ); +} + +/** Makes a field setter declaration. */ +function makeFieldSetterDeclaration( + /** The field declaration to make a setter declaration for. */ + fieldDeclaration: FieldDeclaration, + /** The parent class prototype. */ + classPrototype: ClassPrototype +): FunctionDeclaration { + let range = Source.native.range; + let type = fieldDeclaration.type!; // TODO + // set name(value: Type) { + // store(changetype(this), value, offsetof("fieldname")); + // } + return new FunctionDeclaration( + fieldDeclaration.name, + fieldDeclaration.decorators, + fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Set, + null, + new FunctionTypeNode( + [ + new ParameterNode( + ParameterKind.Default, + new IdentifierExpression("value", false, range), + type, null, range + ) + ], + new NamedTypeNode( + new TypeName( + new IdentifierExpression("", false, range), + null, range + ), + null, false, range + ), + null, false, range + ), + new CallExpression( + new IdentifierExpression("store", false, range), + [ + type + ], [ + new CallExpression( + new IdentifierExpression("changetype", false, range), + [ + new NamedTypeNode( + new TypeName( + new IdentifierExpression("usize", false, range), + null, range + ), + null, false, range + ) + ], [ + new ThisExpression(range) + ], + range + ), + new IdentifierExpression("value", false, range), + new CallExpression( + new IdentifierExpression("offsetof", false, range), + [ + new NamedTypeNode( + new TypeName( + new IdentifierExpression(classPrototype.name, false, range), + null, range + ), + null, false, range + ) + ], [ + new StringLiteralExpression(fieldDeclaration.name.text, range) + ], + range + ) + ], + range + ), + ArrowKind.None, + range + ); +} From 5443e87608d2ee48ecf545de1612e24a237f8d2e Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 29 Oct 2022 15:02:15 +0200 Subject: [PATCH 02/13] break it --- src/bindings/js.ts | 24 +-- src/bindings/tsd.ts | 21 +-- src/bindings/util.ts | 7 - src/builtins.ts | 59 +++--- src/compiler.ts | 429 ++++++++++++++++++++++++------------------- src/flow.ts | 40 ++-- src/module.ts | 9 +- src/program.ts | 294 ++++++++++------------------- src/resolver.ts | 275 ++++++++++++--------------- src/types.ts | 18 +- 10 files changed, 540 insertions(+), 636 deletions(-) diff --git a/src/bindings/js.ts b/src/bindings/js.ts index 39ad3ed1fd..cbf7848a9b 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -23,7 +23,7 @@ import { Interface, Enum, EnumValue, - Field + Property } from "../program"; import { @@ -447,10 +447,6 @@ export class JSBuilder extends ExportsWalker { this.visitClass(name, element); } - visitField(name: string, element: Field): void { - // not implemented - } - visitNamespace(name: string, element: Element): void { // not implemented } @@ -1242,12 +1238,14 @@ export class JSBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Field) continue; - let field = member; + if (member.kind != ElementKind.Property) continue; + let property = member; + if (!property.isField) continue; + assert(property.memoryOffset >= 0); indent(sb, this.indentLevel); - sb.push(field.name); + sb.push(property.name); sb.push(": "); - this.makeLiftFromMemory(field.type, sb, "pointer + " + field.memoryOffset.toString()); + this.makeLiftFromMemory(property.type, sb, "pointer + " + property.memoryOffset.toString()); sb.push(",\n"); } } @@ -1284,10 +1282,12 @@ export class JSBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Field) continue; - let field = member; + if (member.kind != ElementKind.Property) continue; + let property = member; + if (!property.isField) continue; + assert(property.memoryOffset >= 0); indent(sb, this.indentLevel); - this.makeLowerToMemory(field.type, sb, "pointer + " + field.memoryOffset.toString(), "value." + memberName); + this.makeLowerToMemory(property.type, sb, "pointer + " + property.memoryOffset.toString(), "value." + memberName); sb.push(";\n"); } } diff --git a/src/bindings/tsd.ts b/src/bindings/tsd.ts index 32a9a2b09c..358155d0d2 100644 --- a/src/bindings/tsd.ts +++ b/src/bindings/tsd.ts @@ -14,8 +14,8 @@ import { Interface, Enum, ElementKind, - Field, - Element + Element, + Property } from "../program"; import { @@ -172,10 +172,6 @@ export class TSDBuilder extends ExportsWalker { // not implemented } - visitField(name: string, element: Field): void { - // not implemented - } - visitNamespace(name: string, element: Element): void { // not implemented } @@ -351,15 +347,16 @@ export class TSDBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Field) continue; - let field = member; + if (member.kind != ElementKind.Property) continue; + let property = member; + if (!property.isField) continue; sb.push(" /** @type `"); - sb.push(field.type.toString()); + sb.push(property.type.toString()); sb.push("` */\n "); - sb.push(field.name); + sb.push(property.name); sb.push(": "); - sb.push(this.toTypeScriptType(field.type, mode)); - if (this.fieldAcceptsUndefined(field.type)) { + sb.push(this.toTypeScriptType(property.type, mode)); + if (this.fieldAcceptsUndefined(property.type)) { sb.push(" | TOmittable"); } sb.push(";\n"); diff --git a/src/bindings/util.ts b/src/bindings/util.ts index 212214c81e..e8c767ea05 100644 --- a/src/bindings/util.ts +++ b/src/bindings/util.ts @@ -14,7 +14,6 @@ import { Enum, Class, Interface, - Field, File, FunctionPrototype, Global, @@ -95,11 +94,6 @@ export abstract class ExportsWalker { this.visitClassInstances(name, element); break; } - case ElementKind.Field: { - let fieldInstance = element; - if (fieldInstance.is(CommonFlags.Compiled)) this.visitField(name, fieldInstance); - break; - } case ElementKind.PropertyPrototype: { let propertyInstance = (element).instance; if (!propertyInstance) break; @@ -150,7 +144,6 @@ export abstract class ExportsWalker { abstract visitFunction(name: string, element: Function): void; abstract visitClass(name: string, element: Class): void; abstract visitInterface(name: string, element: Interface): void; - abstract visitField(name: string, element: Field): void; abstract visitNamespace(name: string, element: Element): void; abstract visitAlias(name: string, element: Element, originalName: string): void; } diff --git a/src/builtins.ts b/src/builtins.ts index 802724b7c4..2efe53d2c9 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -80,11 +80,11 @@ import { import { ElementKind, FunctionPrototype, - Field, Global, DecoratorFlags, ClassPrototype, - Class + Class, + Property } from "./program"; import { @@ -1078,8 +1078,12 @@ function builtin_offsetof(ctx: BuiltinContext): ExpressionRef { let classMembers = classReference.members; if (classMembers && classMembers.has(fieldName)) { let member = assert(classMembers.get(fieldName)); - if (member.kind == ElementKind.Field) { - return contextualUsize(compiler, i64_new((member).memoryOffset), contextualType); + if (member.kind == ElementKind.Property) { + let property = member; + if (property.isField) { + assert(property.memoryOffset >= 0); + return contextualUsize(compiler, i64_new(property.memoryOffset), contextualType); + } } } compiler.error( @@ -10261,29 +10265,32 @@ function ensureVisitMembersOf(compiler: Compiler, instance: Class): void { // TODO: for (let member of members.values()) { for (let _values = Map_values(members), j = 0, l = _values.length; j < l; ++j) { let member = unchecked(_values[j]); - if (member.kind == ElementKind.Field) { - if ((member).parent == instance) { - let fieldType = (member).type; - if (fieldType.isManaged) { - let fieldOffset = (member).memoryOffset; - assert(fieldOffset >= 0); - needsTempValue = true; - body.push( - // if ($2 = value) __visit($2, $1) - module.if( - module.local_tee(2, - module.load(sizeTypeSize, false, - module.local_get(0, sizeTypeRef), - sizeTypeRef, fieldOffset + if (member.kind == ElementKind.Property) { + let property = member; + if (property.isField) { + if (property.parent == instance) { + let fieldType = property.type; + if (fieldType.isManaged) { + let fieldOffset = property.memoryOffset; + assert(fieldOffset >= 0); + needsTempValue = true; + body.push( + // if ($2 = value) __visit($2, $1) + module.if( + module.local_tee(2, + module.load(sizeTypeSize, false, + module.local_get(0, sizeTypeRef), + sizeTypeRef, fieldOffset + ), + false // internal ), - false // internal - ), - module.call(visitInstance.internalName, [ - module.local_get(2, sizeTypeRef), // value - module.local_get(1, TypeRef.I32) // cookie - ], TypeRef.None) - ) - ); + module.call(visitInstance.internalName, [ + module.local_get(2, sizeTypeRef), // value + module.local_get(1, TypeRef.I32) // cookie + ], TypeRef.None) + ) + ); + } } } } diff --git a/src/compiler.ts b/src/compiler.ts index 3222c25384..31d23481f8 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -77,7 +77,6 @@ import { ElementKind, DeclaredElement, Enum, - Field, FunctionPrototype, Function, Global, @@ -5552,8 +5551,7 @@ export class Compiler extends DiagnosticEmitter { if (!this.compileGlobal(target)) return this.module.unreachable(); // reports // fall-through } - case ElementKind.Local: - case ElementKind.Field: { + case ElementKind.Local: { if (this.pendingElements.has(target)) { this.error( DiagnosticCode.Variable_0_used_before_its_declaration, @@ -5575,6 +5573,16 @@ export class Compiler extends DiagnosticEmitter { } case ElementKind.Property: { let propertyInstance = target; + if (propertyInstance.isField) { + if (this.pendingElements.has(target)) { + this.error( + DiagnosticCode.Variable_0_used_before_its_declaration, + expression.range, + target.internalName + ); + return this.module.unreachable(); + } + } let setterInstance = propertyInstance.setterInstance; if (!setterInstance) { this.error( @@ -5694,43 +5702,42 @@ export class Compiler extends DiagnosticEmitter { } return this.makeGlobalAssignment(global, valueExpr, valueType, tee); } - case ElementKind.Field: { - let fieldInstance = target; - let initializerNode = fieldInstance.initializerNode; - let isConstructor = flow.sourceFunction.is(CommonFlags.Constructor); - - // Cannot assign to readonly fields except in constructors if there's no initializer - if (fieldInstance.is(CommonFlags.Readonly)) { - if (!isConstructor || initializerNode) { - this.error( - DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property, - valueExpression.range, fieldInstance.internalName + case ElementKind.Property: { + let propertyInstance = target; + if (propertyInstance.isField) { + // Cannot assign to readonly fields except in constructors if there's no initializer + let isConstructor = flow.sourceFunction.is(CommonFlags.Constructor); + if (propertyInstance.is(CommonFlags.Readonly)) { + let initializerNode = propertyInstance.initializerNode; + if (!isConstructor || initializerNode) { + this.error( + DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property, + valueExpression.range, propertyInstance.internalName + ); + return module.unreachable(); + } + } + // Mark initialized fields in constructors + thisExpression = assert(thisExpression); + if (isConstructor && thisExpression.kind == NodeKind.This) { + flow.setThisFieldFlag(propertyInstance, FieldFlags.Initialized); + } + // Compile as store if not overloaded + if (!propertyInstance.is(CommonFlags.Virtual)) { + let fieldParent = propertyInstance.parent; + assert(fieldParent.kind == ElementKind.Class); + return this.makeFieldAssignment(propertyInstance, + valueExpr, + valueType, + this.compileExpression( + thisExpression, + (fieldParent).type, + Constraints.ConvImplicit | Constraints.IsThis + ), + tee ); - return module.unreachable(); } } - - // Mark initialized fields in constructors - thisExpression = assert(thisExpression); - if (isConstructor && thisExpression.kind == NodeKind.This) { - flow.setThisFieldFlag(fieldInstance, FieldFlags.Initialized); - } - - let fieldParent = fieldInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - return this.makeFieldAssignment(fieldInstance, - valueExpr, - valueType, - this.compileExpression( - thisExpression, - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ), - tee - ); - } - case ElementKind.Property: { - let propertyInstance = target; let setterInstance = propertyInstance.setterInstance; if (!setterInstance) { this.error( @@ -5920,7 +5927,7 @@ export class Compiler extends DiagnosticEmitter { /** Makes an assignment to a field. */ private makeFieldAssignment( /** The field to assign to. */ - field: Field, + field: Property, /** The value to assign. */ valueExpr: ExpressionRef, /** The type of the value to assign. */ @@ -6110,32 +6117,6 @@ export class Compiler extends DiagnosticEmitter { ); return module.unreachable(); } - case ElementKind.Field: { - let fieldInstance = target; - let fieldType = fieldInstance.type; - signature = fieldType.signatureReference; - if (signature) { - let fieldParent = fieldInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - let usizeType = this.options.usizeType; - functionArg = module.load(usizeType.byteSize, false, - this.compileExpression( - assert(thisExpression), - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ), - usizeType.toRef(), - fieldInstance.memoryOffset - ); - break; - } - this.error( - DiagnosticCode.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures, - expression.range, fieldType.toString() - ); - return module.unreachable(); - } - case ElementKind.PropertyPrototype: { let propertyInstance = this.resolver.resolveProperty(target); if (!propertyInstance) return module.unreachable(); @@ -6147,6 +6128,31 @@ export class Compiler extends DiagnosticEmitter { let getterInstance = propertyInstance.getterInstance; let type = assert(this.resolver.getTypeOfElement(target)); + // Compile as load if not an overloaded field + if (propertyInstance.isField) { + signature = type.signatureReference; + if (signature) { + let fieldParent = propertyInstance.parent; + assert(fieldParent.kind == ElementKind.Class); + let usizeType = this.options.usizeType; + functionArg = module.load(usizeType.byteSize, false, + this.compileExpression( + assert(thisExpression), + (fieldParent).type, + Constraints.ConvImplicit | Constraints.IsThis + ), + usizeType.toRef(), + propertyInstance.memoryOffset + ); + break; + } + this.error( + DiagnosticCode.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures, + expression.range, type.toString() + ); + return module.unreachable(); + } + if (!getterInstance) { this.error( DiagnosticCode.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures, @@ -8159,13 +8165,15 @@ export class Compiler extends DiagnosticEmitter { ); // tempData = tempThis.dataStart let dataStartMember = assert(arrayInstance.getMember("dataStart")); - assert(dataStartMember.kind == ElementKind.Field); + assert(dataStartMember.kind == ElementKind.Property); + let dataStartProperty = dataStartMember; + assert(dataStartProperty.memoryOffset >= 0); stmts.push( module.local_set(tempDataStart.index, module.load(arrayType.byteSize, false, module.local_get(tempThis.index, arrayTypeRef), arrayTypeRef, - (dataStartMember).memoryOffset + dataStartProperty.memoryOffset ), true // ArrayBuffer ) @@ -8394,22 +8402,26 @@ export class Compiler extends DiagnosticEmitter { assert(numNames == values.length); // Assume all class fields will be omitted, and add them to our omitted list - let omittedFields = new Set(); + let omittedFields = new Set(); if (members) { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberKey = _keys[i]; let member = assert(members.get(memberKey)); - if (member && member.kind == ElementKind.Field) { - omittedFields.add(member); // incl. private/protected + if (member && member.kind == ElementKind.Property) { + let property = member; + if (property.isField) { + omittedFields.add(property); // incl. private/protected + } } } } // Iterate through the members defined in our expression + let deferredProperties = new Array(); for (let i = 0; i < numNames; ++i) { let memberName = names[i].text; let member = classReference.getMember(memberName); - if (!member || member.kind != ElementKind.Field) { + if (!member || member.kind != ElementKind.Property) { this.error( DiagnosticCode.Property_0_does_not_exist_on_type_1, names[i].range, memberName, classType.toString() @@ -8433,45 +8445,78 @@ export class Compiler extends DiagnosticEmitter { hasErrors = true; continue; } - let fieldInstance = member; - let fieldType = fieldInstance.type; + let propertyInstance = member; + let setterInstance = propertyInstance.setterInstance; + if (!setterInstance) { // TODO: allow readonly fields? + this.error( + DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property, + names[i].range, memberName, classType.toString() + ); + hasErrors = true; + continue; + } - let expr = this.compileExpression(values[i], fieldType, Constraints.ConvImplicit); + // This member is no longer omitted, so delete from our omitted fields + omittedFields.delete(propertyInstance); + + // Defer real properties to be set after fields are initialized. In + // constructions, whether the field is virtual is irrelevant because + // it is guaranteed to be not actually overloaded. + if (!propertyInstance.isField) { + deferredProperties.push(propertyInstance); + continue; + } + + let propertyType = propertyInstance.type; + assert(propertyInstance.memoryOffset >= 0); exprs.push( - module.call(fieldInstance.internalSetterName, [ + module.store( + propertyType.byteSize, module.local_get(tempLocal.index, classTypeRef), - expr - ], TypeRef.None) + this.compileExpression(values[i], propertyType, Constraints.ConvImplicit), + propertyType.toRef(), + propertyInstance.memoryOffset + ) ); - this.compileFieldSetter(fieldInstance); + } - // This member is no longer omitted, so delete from our omitted fields - omittedFields.delete(fieldInstance); + // Call deferred real property setters after + for (let i = 0, k = deferredProperties.length; i < k; ++i) { + let propertyInstance = deferredProperties[i]; + let setterInstance = assert(propertyInstance.setterInstance); + exprs.push( + this.makeCallDirect(setterInstance, [ + module.local_get(tempLocal.index, classTypeRef), + this.compileExpression(values[i], propertyInstance.type, Constraints.ConvImplicit) + ], setterInstance.identifierNode) + ); } + this.currentType = classType.nonNullableType; if (hasErrors) return module.unreachable(); // Check remaining omitted fields for (let _values = Set_values(omittedFields), j = 0, l = _values.length; j < l; ++j) { - let fieldInstance = _values[j]; - let fieldType = fieldInstance.type; + let propertyInstance = _values[j]; + assert(propertyInstance.isField); + let propertyType = propertyInstance.type; - if (fieldInstance.initializerNode) { + if (propertyInstance.initializerNode) { continue; // set by generated ctor } - if (fieldType.isReference) { - if (!fieldType.isNullableReference) { + if (propertyType.isReference) { + if (!propertyType.isNullableReference) { this.error( DiagnosticCode.Property_0_is_missing_in_type_1_but_required_in_type_2, - expression.range, fieldInstance.name, "", classType.toString() + expression.range, propertyInstance.name, "", classType.toString() ); hasErrors = true; continue; } } - switch (fieldType.kind) { + switch (propertyType.kind) { // Number Types (and Number alias types) case TypeKind.Bool: case TypeKind.I8: @@ -8487,12 +8532,14 @@ export class Compiler extends DiagnosticEmitter { case TypeKind.F32: case TypeKind.F64: { exprs.push( - module.call(fieldInstance.internalSetterName, [ + module.store( + propertyType.byteSize, module.local_get(tempLocal.index, classTypeRef), - this.makeZero(fieldType) - ], TypeRef.None) + this.makeZero(propertyType), + propertyType.toRef(), + propertyInstance.memoryOffset + ) ); - this.compileFieldSetter(fieldInstance); continue; } } @@ -8500,7 +8547,7 @@ export class Compiler extends DiagnosticEmitter { // Otherwise error this.error( DiagnosticCode.Property_0_is_missing_in_type_1_but_required_in_type_2, - expression.range, fieldInstance.name, "", classType.toString() + expression.range, propertyInstance.name, "", classType.toString() ); hasErrors = true; } @@ -8726,39 +8773,39 @@ export class Compiler extends DiagnosticEmitter { if (members) { for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { let element = _values[i]; - if (element.kind == ElementKind.Field && element.parent == classInstance) { - let field = element; - if (!field.initializerNode && !flow.isThisFieldFlag(field, FieldFlags.Initialized)) { - if (!field.is(CommonFlags.DefinitelyAssigned)) { - if (relatedNode) { - this.errorRelated( - DiagnosticCode.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned, - field.declaration.name.range, - relatedNode.range, - field.internalName - ); - } else { - this.error( - DiagnosticCode.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned, - field.declaration.name.range, - field.internalName - ); - } - } - } else if (field.is(CommonFlags.DefinitelyAssigned)) { - if (field.type.isReference) { - this.warning( // involves a runtime check - DiagnosticCode.Property_0_is_always_assigned_before_being_used, - field.identifierNode.range, - field.internalName + if (element.kind != ElementKind.Property || element.parent != classInstance) continue; + let property = element; + if (!property.isField) continue; + if (!property.initializerNode && !flow.isThisFieldFlag(property, FieldFlags.Initialized)) { + if (!property.is(CommonFlags.DefinitelyAssigned)) { + if (relatedNode) { + this.errorRelated( + DiagnosticCode.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned, + property.declaration.name.range, + relatedNode.range, + property.internalName ); } else { - this.pedantic( // is a nop anyway - DiagnosticCode.Unnecessary_definite_assignment, - field.identifierNode.range + this.error( + DiagnosticCode.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned, + property.declaration.name.range, + property.internalName ); } } + } else if (property.is(CommonFlags.DefinitelyAssigned)) { + if (property.type.isReference) { + this.warning( // involves a runtime check + DiagnosticCode.Property_0_is_always_assigned_before_being_used, + property.identifierNode.range, + property.internalName + ); + } else { + this.pedantic( // is a nop anyway + DiagnosticCode.Unnecessary_definite_assignment, + property.identifierNode.range + ); + } } } } @@ -8846,58 +8893,6 @@ export class Compiler extends DiagnosticEmitter { assert(enumValue.type == Type.i32); return module.global_get(enumValue.internalName, TypeRef.I32); } - case ElementKind.Field: { - let fieldInstance = target; - let fieldType = fieldInstance.type; - assert(fieldInstance.memoryOffset >= 0); - let fieldParent = fieldInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - thisExpression = assert(thisExpression); - let thisExpr = this.compileExpression( - thisExpression, - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ); - let thisType = this.currentType; - if ( - flow.sourceFunction.is(CommonFlags.Constructor) && - thisExpression.kind == NodeKind.This && - !flow.isThisFieldFlag(fieldInstance, FieldFlags.Initialized) && - !fieldInstance.is(CommonFlags.DefinitelyAssigned) - ) { - this.errorRelated( - DiagnosticCode.Property_0_is_used_before_being_assigned, - expression.range, - fieldInstance.identifierNode.range, - fieldInstance.internalName - ); - } - if (thisType.isNullableReference) { - if (!flow.isNonnull(thisExpr, thisType)) { - this.error( - DiagnosticCode.Object_is_possibly_null, - thisExpression.range - ); - } - } - if (!fieldInstance.is(CommonFlags.Compiled)) { - fieldInstance.set(CommonFlags.Compiled); - let typeNode = fieldInstance.typeNode; - if (typeNode) this.checkTypeSupported(fieldInstance.type, typeNode); - } - this.currentType = fieldType; - let ret = module.load( - fieldType.byteSize, - fieldType.isSignedIntegerValue, - thisExpr, - fieldType.toRef(), - fieldInstance.memoryOffset - ); - if (fieldInstance.is(CommonFlags.DefinitelyAssigned) && fieldType.isReference && !fieldType.isNullableReference) { - ret = this.makeRuntimeNonNullCheck(ret, fieldType, expression); - } - return ret; - } case ElementKind.PropertyPrototype: { let propertyPrototype = target; let propertyInstance = this.resolver.resolveProperty(propertyPrototype); @@ -8907,6 +8902,59 @@ export class Compiler extends DiagnosticEmitter { } case ElementKind.Property: { let propertyInstance = target; + if (propertyInstance.isField) { + let fieldType = propertyInstance.type; + assert(propertyInstance.memoryOffset >= 0); + let fieldParent = propertyInstance.parent; + assert(fieldParent.kind == ElementKind.Class); + thisExpression = assert(thisExpression); + let thisType = this.currentType; + if ( + flow.sourceFunction.is(CommonFlags.Constructor) && + thisExpression.kind == NodeKind.This && + !flow.isThisFieldFlag(propertyInstance, FieldFlags.Initialized) && + !propertyInstance.is(CommonFlags.DefinitelyAssigned) + ) { + this.errorRelated( + DiagnosticCode.Property_0_is_used_before_being_assigned, + expression.range, + propertyInstance.identifierNode.range, + propertyInstance.internalName + ); + } + if (!propertyInstance.is(CommonFlags.Virtual)) { + let thisExpr = this.compileExpression( + thisExpression, + (fieldParent).type, + Constraints.ConvImplicit | Constraints.IsThis + ); + if (thisType.isNullableReference) { + if (!flow.isNonnull(thisExpr, thisType)) { + this.error( + DiagnosticCode.Object_is_possibly_null, + thisExpression.range + ); + } + } + if (!propertyInstance.is(CommonFlags.Compiled)) { + propertyInstance.set(CommonFlags.Compiled); + let typeNode = propertyInstance.typeNode; + if (typeNode) this.checkTypeSupported(propertyInstance.type, typeNode); + } + this.currentType = fieldType; + let ret = module.load( + fieldType.byteSize, + fieldType.isSignedIntegerValue, + thisExpr, + fieldType.toRef(), + propertyInstance.memoryOffset + ); + if (propertyInstance.is(CommonFlags.DefinitelyAssigned) && fieldType.isReference && !fieldType.isNullableReference) { + ret = this.makeRuntimeNonNullCheck(ret, fieldType, expression); + } + return ret; + } + } let getterInstance = propertyInstance.getterInstance; if (!getterInstance) return module.unreachable(); // failed earlier let thisArg: ExpressionRef = 0; @@ -10196,42 +10244,45 @@ export class Compiler extends DiagnosticEmitter { let isInline = flow.isInline; let thisLocalIndex = isInline ? flow.lookupLocal(CommonNames.this_)!.index : 0; let sizeTypeRef = this.options.sizeTypeRef; - let nonParameterFields: Field[] | null = null; + 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]); + let property: Property; if ( - member.kind != ElementKind.Field || // not a field - member.parent != classInstance // inherited field + member.kind != ElementKind.Property || // not a property + member.parent != classInstance || // inherited field + !(property = member).isField // not a field ) continue; - let field = member; - assert(!field.isAny(CommonFlags.Const)); - let fieldPrototype = field.prototype; + 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(field); + nonParameterFields.push(property); continue; } // Initialize constructor parameter field - let fieldType = field.type; + let fieldType = property.type; let fieldTypeRef = fieldType.toRef(); assert(!fieldPrototype.initializerNode); - this.compileFieldSetter(field); stmts.push( - module.call(field.internalSetterName, [ + module.store( + fieldType.byteSize, module.local_get(thisLocalIndex, sizeTypeRef), module.local_get( isInline - ? flow.lookupLocal(field.name)!.index + ? flow.lookupLocal(property.name)!.index : 1 + parameterIndex, // `this` is local 0 fieldTypeRef - ) - ], TypeRef.None) + ), + fieldType.toRef(), + property.memoryOffset + ) ); } @@ -10243,14 +10294,16 @@ export class Compiler extends DiagnosticEmitter { let fieldPrototype = field.prototype; let initializerNode = fieldPrototype.initializerNode; assert(fieldPrototype.parameterIndex < 0); - this.compileFieldSetter(field); stmts.push( - module.call(field.internalSetterName, [ + module.store( + fieldType.byteSize, module.local_get(thisLocalIndex, sizeTypeRef), initializerNode // use initializer if present, otherwise initialize with zero ? this.compileExpression(initializerNode, fieldType, Constraints.ConvImplicit) - : this.makeZero(fieldType) - ], TypeRef.None) + : this.makeZero(fieldType), + fieldType.toRef(), + field.memoryOffset + ) ); } } diff --git a/src/flow.ts b/src/flow.ts index 401ce58b46..053bc27d3c 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -27,10 +27,10 @@ import { Function, Element, ElementKind, - Field, Class, TypedElement, - mangleInternalName + mangleInternalName, + Property } from "./program"; import { @@ -242,7 +242,7 @@ export class Flow { /** Local flags. */ localFlags: LocalFlags[] = []; /** Field flags on `this`. Constructors only. */ - thisFieldFlags: Map | null = null; + thisFieldFlags: Map | null = null; /** The label we break to when encountering a return statement, when inlining. */ inlineReturnLabel: string | null = null; @@ -477,27 +477,27 @@ export class Flow { if (members) { for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { let member = _values[i]; - if (member.kind == ElementKind.Field) { - let field = member; - if ( - // guaranteed by super - field.parent != classInstance || - // has field initializer - field.initializerNode || - // is initialized as a ctor parameter - field.prototype.parameterIndex != -1 || - // is safe to initialize with zero - field.type.isAny(TypeFlags.Value | TypeFlags.Nullable) - ) { - this.setThisFieldFlag(field, FieldFlags.Initialized); - } + if (member.kind != ElementKind.Property) continue; + let property = member; + if (!property.isField) continue; + if ( + // guaranteed by super + property.parent != classInstance || + // has field initializer + property.initializerNode || + // is initialized as a ctor parameter + property.prototype.parameterIndex != -1 || + // is safe to initialize with zero + property.type.isAny(TypeFlags.Value | TypeFlags.Nullable) + ) { + this.setThisFieldFlag(property, FieldFlags.Initialized); } } } } /** Tests if the specified `this` field has the specified flag or flags. */ - isThisFieldFlag(field: Field, flag: FieldFlags): bool { + isThisFieldFlag(field: Property, flag: FieldFlags): bool { let fieldFlags = this.thisFieldFlags; if (fieldFlags != null && fieldFlags.has(field)) { return (changetype(fieldFlags.get(field)) & flag) == flag; @@ -506,7 +506,7 @@ export class Flow { } /** Sets the specified flag or flags on the given `this` field. */ - setThisFieldFlag(field: Field, flag: FieldFlags): void { + setThisFieldFlag(field: Property, flag: FieldFlags): void { let fieldFlags = this.thisFieldFlags; if (fieldFlags) { assert(this.sourceFunction.is(CommonFlags.Constructor)); @@ -799,7 +799,7 @@ export class Flow { // field flags (currently only INITIALIZED, so can simplify) let leftFieldFlags = left.thisFieldFlags; if (leftFieldFlags) { - let newFieldFlags = new Map(); + let newFieldFlags = new Map(); let rightFieldFlags = assert(right.thisFieldFlags); for (let _keys = Map_keys(leftFieldFlags), i = 0, k = _keys.length; i < k; ++i) { let key = _keys[i]; diff --git a/src/module.ts b/src/module.ts index a7c88871b6..a08ed50fba 100644 --- a/src/module.ts +++ b/src/module.ts @@ -24,7 +24,7 @@ import { } from "./types"; import { ElementKind, - Field + Property } from "./program"; import * as binaryen from "./glue/binaryen"; @@ -3828,9 +3828,10 @@ function prepareType(builder: binaryen.TypeBuilderRef, seen: Mapmember; - let fieldType = field.type; + if (member.kind != ElementKind.Property) continue; + let property = member; + if (!property.isField) continue; + let fieldType = property.type; if (DEBUG_TYPEBUILDER) { console.log(` field ${fieldType.toString()}`); } diff --git a/src/program.ts b/src/program.ts index b1924d098b..3a86169c09 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1674,7 +1674,6 @@ export class Program extends DiagnosticEmitter { } case ElementKind.Property: case ElementKind.Function: - case ElementKind.Field: case ElementKind.Class: assert(false); // assumes that there are no instances yet } let staticMembers = element.members; @@ -1995,7 +1994,7 @@ export class Program extends DiagnosticEmitter { if (!parent.add(name, element)) return; } else { // actual instance field assert(!declaration.isAny(CommonFlags.Abstract | CommonFlags.Get | CommonFlags.Set)); - element = new FieldPrototype( + element = PropertyPrototype.forField( name, parent, declaration, @@ -2729,10 +2728,6 @@ export const enum ElementKind { InterfacePrototype, /** An {@link Interface}. */ Interface, - /** A {@link FieldPrototype}. */ - FieldPrototype, - /** A {@link Field}. */ - Field, /** A {@link PropertyPrototype}. */ PropertyPrototype, /** A {@link Property}. */ @@ -2933,6 +2928,17 @@ export abstract class Element { return (this.flags & vis) == (other.flags & vis); } + /** Checks if the visibility of this element overrides the specified's. */ + visibilityOverrides(existing: Element): bool { + // Private cannot be overridden + if (existing.is(CommonFlags.Private)) return false; + // Protected is overridden by protected or public + if (existing.is(CommonFlags.Protected)) return this.is(CommonFlags.Protected) || this.isPublic; + // Public is overridden only by public + if (existing.isPublic) return this.isPublic; + return false; + } + /** Returns a string representation of this element. */ toString(): string { return `${this.internalName}, kind=${this.kind}`; @@ -3055,10 +3061,6 @@ export abstract class DeclaredElement extends Element { } return true; } - // TODO: Implement properties overriding fields and vice-versa. Challenge is that anything overridable requires - // a virtual stub, but fields aren't functions. Either all (such) fields should become property-like, with a - // getter and a setter that can participate as a virtual stub, or it's allowed one-way, with fields integrated - // into what can be a virtual stub as get=load and set=store, then not necessarily with own accessor functions. } } return false; @@ -3851,130 +3853,6 @@ export class Function extends TypedElement { } } -/** A yet unresolved instance field prototype. */ -export class FieldPrototype extends DeclaredElement { - - /** Constructs a new field prototype. */ - constructor( - /** Simple name. */ - name: string, - /** Parent class. */ - parent: ClassPrototype, - /** Declaration reference. */ - declaration: FieldDeclaration, - /** Pre-checked flags indicating built-in decorators. */ - decoratorFlags: DecoratorFlags = DecoratorFlags.None - ) { - super( - ElementKind.FieldPrototype, - name, - mangleInternalName(name, parent, assert(declaration.is(CommonFlags.Instance))), - parent.program, - parent, - declaration - ); - this.decoratorFlags = decoratorFlags; - } - - /** Gets the associated type node. */ - get typeNode(): TypeNode | null { - return (this.declaration).type; - } - - /** Gets the associated initializer node. */ - get initializerNode(): Expression | null { - return (this.declaration).initializer; - } - - /** Gets the associated parameter index. Set if declared as a constructor parameter, otherwise `-1`. */ - get parameterIndex(): i32 { - return (this.declaration).parameterIndex; - } -} - -/** A resolved instance field. */ -export class Field extends VariableLikeElement { - - /** Field prototype reference. */ - prototype: FieldPrototype; - /** Field memory offset, if an instance field. */ - memoryOffset: i32 = -1; - /** Getter function reference, if compiled. */ - getterRef: FunctionRef = 0; - /** Setter function reference, if compiled. */ - setterRef: FunctionRef = 0; - - /** Constructs a new field. */ - constructor( - /** Respective field prototype. */ - prototype: FieldPrototype, - /** Parent class. */ - parent: Class, - /** Concrete type. */ - type: Type - ) { - super( - ElementKind.Field, - prototype.name, - parent, - prototype.declaration - ); - this.prototype = prototype; - this.flags = prototype.flags; - this.decoratorFlags = prototype.decoratorFlags; - assert(type != Type.void); - this.setType(type); - registerConcreteElement(this.program, this); - } - - /** Gets the field's `this` type. */ - get thisType(): Type { - let parent = this.parent; - assert(parent.kind == ElementKind.Class); - return (parent).type; - } - - /** Gets the internal name of the respective getter function. */ - get internalGetterName(): string { - let cached = this._internalGetterName; - if (cached == null) { - this._internalGetterName = cached = `${this.parent.internalName}${INSTANCE_DELIMITER}${GETTER_PREFIX}${this.name}`; - } - return cached; - } - private _internalGetterName: string | null = null; - - /** Gets the internal name of the respective setter function. */ - get internalSetterName(): string { - let cached = this._internalSetterName; - if (cached == null) { - this._internalSetterName = cached = `${this.parent.internalName}${INSTANCE_DELIMITER}${SETTER_PREFIX}${this.name}`; - } - return cached; - } - private _internalSetterName: string | null = null; - - /** Gets the signature of the respective getter function. */ - get internalGetterSignature(): Signature { - let cached = this._internalGetterSignature; - if (!cached) { - this._internalGetterSignature = cached = new Signature(this.program, null, this.type, this.thisType); - } - return cached; - } - private _internalGetterSignature: Signature | null = null; - - /** Gets the signature of the respective setter function. */ - get internalSetterSignature(): Signature { - let cached = this._internalSetterSignature; - if (!cached) { - this._internalSetterSignature = cached = new Signature(this.program, [ this.type ], Type.void, this.thisType); - } - return cached; - } - private _internalSetterSignature: Signature | null = null; -} - /** A property comprised of a getter and a setter function. */ export class PropertyPrototype extends DeclaredElement { @@ -3991,7 +3869,16 @@ export class PropertyPrototype extends DeclaredElement { private boundPrototypes: Map | null = null; /** Creates a property prototype representing a field. */ - static forField(parent: ClassPrototype, fieldDeclaration: FieldDeclaration): PropertyPrototype { + static forField( + /** Simple name. */ + name: string, + /** Parent element. Always a class prototype. */ + parent: ClassPrototype, + /** Declaration of the field. */ + fieldDeclaration: FieldDeclaration, + /** Pre-checked flags indicating built-in decorators. */ + decoratorFlags: DecoratorFlags, + ): PropertyPrototype { // A field differs from a property in that accessing it is merely a load // from respectively store to a memory address relative to its `this` // pointer, not a function call. However, fields can be overloaded with @@ -4001,7 +3888,6 @@ export class PropertyPrototype extends DeclaredElement { // properties, with compiler-generated accessors for cases they are used // like properties. As a result, emitting actual loads and stores becomes an // optimization in non-overloaded cases. - let name = fieldDeclaration.name.text; let getterDeclaration = makeFieldGetterDeclaration(fieldDeclaration, parent); let prototype = new PropertyPrototype(name, parent, getterDeclaration); prototype.fieldDeclaration = fieldDeclaration; @@ -4010,6 +3896,7 @@ export class PropertyPrototype extends DeclaredElement { let setterDeclaration = makeFieldSetterDeclaration(fieldDeclaration, parent); prototype.setterPrototype = new FunctionPrototype(SETTER_PREFIX + name, parent, setterDeclaration); } + prototype.decoratorFlags = decoratorFlags; return prototype; } @@ -4083,6 +3970,13 @@ export class PropertyPrototype extends DeclaredElement { return -1; } + /** Gets the respective `this` type. */ + get thisType(): Type { + let parent = this.parent; + assert(parent.kind == ElementKind.Class); + return (parent).type; + } + /** Creates a clone of this property prototype that is bound to a concrete class. */ toBound(classInstance: Class): PropertyPrototype { assert(this.is(CommonFlags.Instance)); @@ -4098,6 +3992,7 @@ export class PropertyPrototype extends DeclaredElement { firstDeclaration ); bound.flags = this.flags; + bound.fieldDeclaration = this.fieldDeclaration; let getterPrototype = this.getterPrototype; if (getterPrototype) { bound.getterPrototype = getterPrototype.toBound(classInstance); @@ -4362,8 +4257,10 @@ export class Class extends TypedElement { let lengthField = this.getMember("length"); if (!lengthField) return false; return ( - lengthField.kind == ElementKind.Field || ( + lengthField.kind == ElementKind.Property && + (lengthField).getterInstance != null + ) || ( lengthField.kind == ElementKind.PropertyPrototype && (lengthField).getterPrototype != null // TODO: resolve & check type? ) @@ -4527,8 +4424,10 @@ export class Class extends TypedElement { /** Calculates the memory offset of the specified field. */ offsetof(fieldName: string): u32 { let member = assert(this.getMember(fieldName)); - assert(member.kind == ElementKind.Field); - return (member).memoryOffset; + assert(member.kind == ElementKind.Property); + let property = member; + assert(property.isField && property.memoryOffset >= 0); + return property.memoryOffset; } /** Creates a buffer suitable to hold a runtime instance of this class. */ @@ -4549,65 +4448,68 @@ export class Class extends TypedElement { /** Writes a field value to a buffer and returns the number of bytes written. */ writeField(name: string, value: T, buffer: Uint8Array, baseOffset: i32 = this.program.totalOverhead): i32 { let member = this.getMember(name); - if (member && member.kind == ElementKind.Field) { - let fieldInstance = member; - let offset = baseOffset + fieldInstance.memoryOffset; - let typeKind = fieldInstance.type.kind; - switch (typeKind) { - case TypeKind.I8: - case TypeKind.U8: { - assert(!i64_is(value)); - writeI8(i32(value), buffer, offset); - return 1; - } - case TypeKind.I16: - case TypeKind.U16: { - assert(!i64_is(value)); - writeI16(i32(value), buffer, offset); - return 2; - } - case TypeKind.I32: - case TypeKind.U32: { - assert(!i64_is(value)); - writeI32(i32(value), buffer, offset); - return 4; - } - case TypeKind.Isize: - case TypeKind.Usize: { - if (this.program.options.isWasm64) { - if (i64_is(value)) { - writeI64(value, buffer, offset); + if (member && member.kind == ElementKind.Property) { + let property = member; + if (property.isField) { + assert(property.memoryOffset >= 0); + let offset = baseOffset + property.memoryOffset; + let typeKind = property.type.kind; + switch (typeKind) { + case TypeKind.I8: + case TypeKind.U8: { + assert(!i64_is(value)); + writeI8(i32(value), buffer, offset); + return 1; + } + case TypeKind.I16: + case TypeKind.U16: { + assert(!i64_is(value)); + writeI16(i32(value), buffer, offset); + return 2; + } + case TypeKind.I32: + case TypeKind.U32: { + assert(!i64_is(value)); + writeI32(i32(value), buffer, offset); + return 4; + } + case TypeKind.Isize: + case TypeKind.Usize: { + if (this.program.options.isWasm64) { + if (i64_is(value)) { + writeI64(value, buffer, offset); + } else { + writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.Usize); + } + return 8; } else { - writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.Usize); + if (i64_is(value)) { + writeI64AsI32(value, buffer, offset, typeKind == TypeKind.Usize); + } else { + writeI32(i32(value), buffer, offset); + } + return 4; } - return 8; - } else { + } + case TypeKind.I64: + case TypeKind.U64: { if (i64_is(value)) { - writeI64AsI32(value, buffer, offset, typeKind == TypeKind.Usize); + writeI64(value, buffer, offset); } else { - writeI32(i32(value), buffer, offset); + writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.U64); } + return 8; + } + case TypeKind.F32: { + assert(!i64_is(value)); + writeF32(f32(value), buffer, offset); return 4; } - } - case TypeKind.I64: - case TypeKind.U64: { - if (i64_is(value)) { - writeI64(value, buffer, offset); - } else { - writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.U64); + case TypeKind.F64: { + assert(!i64_is(value)); + writeF64(f64(value), buffer, offset); + return 8; } - return 8; - } - case TypeKind.F32: { - assert(!i64_is(value)); - writeF32(f32(value), buffer, offset); - return 4; - } - case TypeKind.F64: { - assert(!i64_is(value)); - writeF64(f64(value), buffer, offset); - return 8; } } } @@ -4683,9 +4585,9 @@ export class Class extends TypedElement { // Check that there are no managed instance fields for (let _values = Map_values(instanceMembers), i = 0, k = _values.length; i < k; ++i) { let member = unchecked(_values[i]); - if (member.kind == ElementKind.Field) { - let fieldType = (member).type; - if (fieldType.isManaged) return false; + if (member.kind == ElementKind.Property) { + let property = member; + if (property.isField && property.type.isManaged) return false; } } @@ -4945,7 +4847,7 @@ function makeFieldGetterDeclaration( // get name(): Type { // return load(changetype(this), offsetof("name")); // } - return new FunctionDeclaration( + return new MethodDeclaration( fieldDeclaration.name, fieldDeclaration.decorators, fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Get, @@ -4990,7 +4892,6 @@ function makeFieldGetterDeclaration( ), range ), - ArrowKind.None, range ); } @@ -5007,7 +4908,7 @@ function makeFieldSetterDeclaration( // set name(value: Type) { // store(changetype(this), value, offsetof("fieldname")); // } - return new FunctionDeclaration( + return new MethodDeclaration( fieldDeclaration.name, fieldDeclaration.decorators, fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Set, @@ -5068,7 +4969,6 @@ function makeFieldSetterDeclaration( ], range ), - ArrowKind.None, range ); } diff --git a/src/resolver.ts b/src/resolver.ts index 6b862ceb17..6a42abdccb 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -30,8 +30,6 @@ import { VariableLikeElement, Property, PropertyPrototype, - Field, - FieldPrototype, Global, TypeDefinition, TypedElement, @@ -1329,8 +1327,7 @@ export class Resolver extends DiagnosticEmitter { switch (target.kind) { case ElementKind.Global: if (!this.ensureResolvedLazyGlobal(target, reportMode)) return null; case ElementKind.EnumValue: - case ElementKind.Local: - case ElementKind.Field: { // someVar.prop + case ElementKind.Local: { // someVar.prop let variableLikeElement = target; let type = variableLikeElement.type; assert(type != Type.void); @@ -2450,7 +2447,7 @@ export class Resolver extends DiagnosticEmitter { } case ElementKind.Global: case ElementKind.Local: - case ElementKind.Field: { + case ElementKind.Property: { let varType = (target).type; let varElement = this.getElementOfType(varType); if (!varElement || varElement.kind != ElementKind.Class) { @@ -3152,7 +3149,7 @@ export class Resolver extends DiagnosticEmitter { let pendingClasses = this.resolveClassPending; let unimplemented = new Map(); - // Alias interface members + // Alias and pre-check implemented interface members let interfaces = instance.interfaces; if (interfaces) { for (let _values = Set_values(interfaces), i = 0, k = _values.length; i < k; ++i) { @@ -3162,25 +3159,28 @@ export class Resolver extends DiagnosticEmitter { if (ifaceMembers) { for (let _keys = Map_keys(ifaceMembers), i = 0, k = _keys.length; i < k; ++i) { let memberName = unchecked(_keys[i]); - let member = assert(ifaceMembers.get(memberName)); + let baseMember = assert(ifaceMembers.get(memberName)); if (members.has(memberName)) { - let existing = assert(members.get(memberName)); - if (!member.isCompatibleOverride(existing)) { + let thisMember = assert(members.get(memberName)); + if (!thisMember.isCompatibleOverride(baseMember)) { this.errorRelated( DiagnosticCode.This_overload_signature_is_not_compatible_with_its_implementation_signature, - member.identifierAndSignatureRange, existing.identifierAndSignatureRange + thisMember.identifierAndSignatureRange, baseMember.identifierAndSignatureRange ); continue; } + if (!this.checkOverloadVisibility(memberName, thisMember, instance, baseMember, iface, reportMode)) { + continue; + } } - members.set(memberName, member); - unimplemented.set(memberName, member); + members.set(memberName, baseMember); + unimplemented.set(memberName, baseMember); } } } } - // Alias base members + // Alias and pre-check implemented / overridden base members let memoryOffset: u32 = 0; let base = instance.base; if (base) { @@ -3190,20 +3190,23 @@ export class Resolver extends DiagnosticEmitter { // TODO: for (let [baseMemberName, baseMember] of baseMembers) { for (let _keys = Map_keys(baseMembers), i = 0, k = _keys.length; i < k; ++i) { let memberName = unchecked(_keys[i]); - let member = assert(baseMembers.get(memberName)); + let baseMember = assert(baseMembers.get(memberName)); if (members.has(memberName)) { - let existing = assert(members.get(memberName)); - if (!member.isCompatibleOverride(existing)) { + let thisMember = assert(members.get(memberName)); + if (!thisMember.isCompatibleOverride(baseMember)) { this.errorRelated( DiagnosticCode.This_overload_signature_is_not_compatible_with_its_implementation_signature, - member.identifierAndSignatureRange, existing.identifierAndSignatureRange + thisMember.identifierAndSignatureRange, baseMember.identifierAndSignatureRange ); continue; } + if (!this.checkOverloadVisibility(memberName, thisMember, instance, baseMember, base, reportMode)) { + continue; + } } - members.set(memberName, member); - if (member.is(CommonFlags.Abstract)) { - unimplemented.set(memberName, member); + members.set(memberName, baseMember); + if (baseMember.is(CommonFlags.Abstract)) { + unimplemented.set(memberName, baseMember); } else { unimplemented.delete(memberName); } @@ -3222,145 +3225,6 @@ export class Resolver extends DiagnosticEmitter { let member = unchecked(_values[i]); let memberName = member.name; switch (member.kind) { - - case ElementKind.FieldPrototype: { - let fieldPrototype = member; - let fieldTypeNode = fieldPrototype.typeNode; - let fieldType: Type | null = null; - let existingField: Field | null = null; - if (base) { - let baseMembers = base.members; - if (baseMembers && baseMembers.has(fieldPrototype.name)) { - let baseField = assert(baseMembers.get(fieldPrototype.name)); - if (baseField.kind == ElementKind.Field) { - existingField = baseField; - } else { - this.errorRelated( - DiagnosticCode.Duplicate_identifier_0, - fieldPrototype.identifierNode.range, baseField.identifierNode.range, - fieldPrototype.name - ); - } - } - } - if (!fieldTypeNode) { - if (existingField && !existingField.is(CommonFlags.Private)) { - fieldType = existingField.type; - } - if (!fieldType) { - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_expected, - fieldPrototype.identifierNode.range.atEnd - ); - } - } - } else { - fieldType = this.resolveType( - fieldTypeNode, - prototype.parent, // relative to class - instance.contextualTypeArguments, - reportMode - ); - if (fieldType == Type.void) { - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_expected, - fieldTypeNode.range - ); - } - break; - } - } - if (!fieldType) break; // did report above - if (existingField) { - // visibility checks - /* - existingField visibility on top - +==================+=========+===========+=========+ - | Visibility Table | Private | Protected | Public | - +==================+=========+===========+=========+ - | Private | error | error | error | - +------------------+---------+-----------+---------+ - | Protected | error | allowed | error | - +------------------+---------+-----------+---------+ - | Public | error | allowed | allowed | - +------------------+---------+-----------+---------+ - */ - - let baseClass = base; - - // handle cases row-by-row - if (fieldPrototype.is(CommonFlags.Private)) { - if (existingField.is(CommonFlags.Private)) { - this.errorRelated( - DiagnosticCode.Types_have_separate_declarations_of_a_private_property_0, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name - ); - } else { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name, instance.internalName, baseClass.internalName - ); - } - } else if (fieldPrototype.is(CommonFlags.Protected)) { - if (existingField.is(CommonFlags.Private)) { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name, baseClass.internalName, instance.internalName - ); - } else if (!existingField.is(CommonFlags.Protected)) { - // may be implicitly public - this.errorRelated( - DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name, instance.internalName, baseClass.internalName - ); - } - } else { - // fieldPrototype is public here - if (existingField.is(CommonFlags.Private)) { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name, baseClass.internalName, instance.internalName - ); - } - } - - // assignability (to guarantee soundness, field types must be invariant) - // see also Wasm GC, where mutable fields are invariant for this reason - // - // class Animal { sibling: Animal; } - // class Cat extends Animal { sibling: Cat; } // covariance - // class Dog extends Animal { sibling: Dog; } // is unsound - // (new Cat()).sibling = new Dog(); // → Cat with Dog sibling - // - if (fieldType != existingField.type) { - this.errorRelated( - DiagnosticCode.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, - fieldPrototype.identifierNode.range, existingField.identifierNode.range, - fieldPrototype.name, instance.internalName, baseClass.internalName - ); - fieldType = existingField.type; // recover (typebuilder would otherwise error) - } - } - let fieldInstance = new Field(fieldPrototype, instance, fieldType); - assert(isPowerOf2(fieldType.byteSize)); - if (existingField) { - fieldInstance.memoryOffset = existingField.memoryOffset; - } else { - let mask = fieldType.byteSize - 1; - if (memoryOffset & mask) memoryOffset = (memoryOffset | mask) + 1; - fieldInstance.memoryOffset = memoryOffset; - memoryOffset += fieldType.byteSize; - } - instance.add(memberName, fieldInstance); // reports - break; - } case ElementKind.FunctionPrototype: { let boundPrototype = (member).toBound(instance); instance.add(boundPrototype.name, boundPrototype); // reports @@ -3368,7 +3232,20 @@ export class Resolver extends DiagnosticEmitter { } case ElementKind.PropertyPrototype: { let boundPrototype = (member).toBound(instance); - instance.add(boundPrototype.name, boundPrototype); // reports + if (boundPrototype.isField) { // resolve fully and lay out + let boundInstance = this.resolveProperty(boundPrototype, reportMode); + if (boundInstance) { + let fieldType = boundInstance.type; + assert(isPowerOf2(fieldType.byteSize)); + let mask = fieldType.byteSize - 1; + if (memoryOffset & mask) memoryOffset = (memoryOffset | mask) + 1; + boundInstance.memoryOffset = memoryOffset; + memoryOffset += fieldType.byteSize; + instance.add(boundInstance.name, boundInstance); // reports + } + } else { + instance.add(boundPrototype.name, boundPrototype); // reports + } break; } default: assert(false); @@ -3529,6 +3406,84 @@ export class Resolver extends DiagnosticEmitter { } } + /** Checks whether visibility of an overload is valid. */ + private checkOverloadVisibility( + /** Name of the property. */ + name: string, + /** Overloading element. */ + thisElement: DeclaredElement, + /** Overloading class. */ + thisClass: Class, + /** Overloaded element. */ + baseElement: DeclaredElement, + /** Overloaded class. */ + baseClass: Class, + /** Report mode. */ + reportMode: ReportMode + ): bool { + if (thisElement.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + if (baseElement.is(CommonFlags.Private)) { + this.errorRelated( + DiagnosticCode.Types_have_separate_declarations_of_a_private_property_0, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name + ); + } else { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name, thisClass.internalName, baseClass.internalName + ); + } + } + return false; + } else if (thisElement.is(CommonFlags.Protected)) { + if (baseElement.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + return false; + } else if (baseElement.isPublic) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name, thisClass.internalName, baseClass.internalName + ); + } + return false; + } + assert(baseElement.is(CommonFlags.Protected)); + } else if (thisElement.isPublic) { + if (baseElement.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + return false; + } else if (baseElement.is(CommonFlags.Protected)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, + thisElement.identifierNode.range, baseElement.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + return false; + } + assert(baseElement.isPublic); + } + return true; + } + /** Resolves a class prototype by first resolving the specified type arguments. */ resolveClassInclTypeArguments( /** The prototype of the class. */ diff --git a/src/types.ts b/src/types.ts index 521a0dbd38..f9361b2862 100644 --- a/src/types.ts +++ b/src/types.ts @@ -994,21 +994,19 @@ export class Signature { isAssignableTo(target: Signature, checkCompatibleOverride: bool = false): bool { let thisThisType = this.thisType; let targetThisType = target.thisType; - if (!checkCompatibleOverride) { - // check exact `this` type + if (checkCompatibleOverride) { + // check kind of `this` type if (thisThisType) { - if (!targetThisType || !thisThisType.isAssignableTo(targetThisType)) { + if (!targetThisType || !thisThisType.canExtendOrImplement(targetThisType)) { return false; } } else if (targetThisType) { return false; } } else { - // check kind of `this` type + // check `this` type (invariant) if (thisThisType) { - if (!targetThisType || !thisThisType.canExtendOrImplement(targetThisType)) { - return false; - } + if (targetThisType != targetThisType) return false; } else if (targetThisType) { return false; } @@ -1017,13 +1015,13 @@ export class Signature { // check rest parameter if (this.hasRest != target.hasRest) return false; // TODO - // check return type + // check return type (covariant) let thisReturnType = this.returnType; let targetReturnType = target.returnType; if (!(thisReturnType == targetReturnType || thisReturnType.isAssignableTo(targetReturnType))) { return false; } - // check parameter types + // check parameter types (invariant) let thisParameterTypes = this.parameterTypes; let targetParameterTypes = target.parameterTypes; let numParameters = thisParameterTypes.length; @@ -1032,7 +1030,7 @@ export class Signature { for (let i = 0; i < numParameters; ++i) { let thisParameterType = unchecked(thisParameterTypes[i]); let targetParameterType = unchecked(targetParameterTypes[i]); - if (!thisParameterType.isAssignableTo(targetParameterType)) return false; + if (thisParameterType != targetParameterType) return false; } return true; } From 4f67f94292146b94bbd5d9d80a19608a2ef4c900 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 02:20:59 +0100 Subject: [PATCH 03/13] transplant --- src/bindings/js.ts | 14 +- src/bindings/tsd.ts | 8 +- src/builtins.ts | 71 +- src/compiler.ts | 487 +- src/diagnosticMessages.json | 1 + src/diagnostics.ts | 19 +- src/flow.ts | 12 +- src/module.ts | 9 +- src/program.ts | 488 +- src/resolver.ts | 362 +- src/types.ts | 2 - tests/compiler/NonNullable.debug.wat | 8 +- tests/compiler/assert-nonnull.debug.wat | 128 +- tests/compiler/assert-nonnull.release.wat | 119 +- tests/compiler/bindings/esm.debug.wat | 418 +- tests/compiler/bindings/esm.release.wat | 57 +- .../bindings/noExportRuntime.debug.wat | 188 +- .../bindings/noExportRuntime.release.wat | 121 +- tests/compiler/bindings/raw.debug.wat | 418 +- tests/compiler/bindings/raw.release.wat | 57 +- tests/compiler/builtins.debug.wat | 14 +- tests/compiler/builtins.release.wat | 6 +- tests/compiler/call-super.debug.wat | 276 +- tests/compiler/call-super.release.wat | 224 +- tests/compiler/class-extends.debug.wat | 25 +- tests/compiler/class-implements.debug.wat | 142 +- .../compiler/class-overloading-cast.debug.wat | 148 +- tests/compiler/class-overloading.debug.wat | 148 +- tests/compiler/class.debug.wat | 301 +- tests/compiler/class.release.wat | 157 +- tests/compiler/constructor.debug.wat | 428 +- tests/compiler/constructor.release.wat | 215 +- tests/compiler/do.debug.wat | 144 +- tests/compiler/do.release.wat | 468 +- tests/compiler/duplicate-field-errors.json | 5 +- tests/compiler/duplicate-fields.debug.wat | 275 +- tests/compiler/duplicate-fields.release.wat | 156 +- tests/compiler/duplicate-fields.ts | 10 +- tests/compiler/empty-exportruntime.debug.wat | 144 +- tests/compiler/empty-new.debug.wat | 144 +- tests/compiler/empty-new.release.wat | 123 +- .../compiler/exportstar-rereexport.debug.wat | 156 +- .../exportstar-rereexport.release.wat | 406 +- .../compiler/extends-baseaggregate.debug.wat | 234 +- .../extends-baseaggregate.release.wat | 97 +- tests/compiler/extends-recursive.debug.wat | 152 +- tests/compiler/field-initialization.debug.wat | 1354 +- .../compiler/field-initialization.release.wat | 251 +- tests/compiler/field.debug.wat | 285 +- tests/compiler/field.release.wat | 11 +- tests/compiler/for.debug.wat | 144 +- tests/compiler/for.release.wat | 468 +- tests/compiler/function-call.debug.wat | 174 +- tests/compiler/function-expression.debug.wat | 266 +- .../compiler/function-expression.release.wat | 828 +- tests/compiler/function-expression.ts | 2 +- .../function-inline-regressions.debug.wat | 18 +- tests/compiler/getter-call.debug.wat | 150 +- tests/compiler/getter-call.release.wat | 284 +- tests/compiler/heap.debug.wat | 90 +- tests/compiler/infer-array.debug.wat | 304 +- tests/compiler/infer-array.release.wat | 116 +- tests/compiler/infer-generic.debug.wat | 248 +- tests/compiler/infer-generic.release.wat | 81 +- tests/compiler/inlining.debug.wat | 198 +- tests/compiler/instanceof-class.debug.wat | 156 +- tests/compiler/instanceof-class.release.wat | 4 +- tests/compiler/issues/1095.debug.wat | 293 +- tests/compiler/issues/1095.release.wat | 137 +- tests/compiler/issues/1225.debug.wat | 224 +- tests/compiler/issues/1225.release.wat | 285 +- tests/compiler/issues/1699.debug.wat | 228 +- tests/compiler/issues/1714.debug.wat | 8 +- tests/compiler/issues/2166.debug.wat | 150 +- tests/compiler/issues/2322/index.debug.wat | 150 +- tests/compiler/issues/2322/index.release.wat | 472 +- tests/compiler/logical.debug.wat | 144 +- tests/compiler/logical.release.wat | 382 +- tests/compiler/managed-cast.debug.wat | 156 +- tests/compiler/managed-cast.release.wat | 24 +- tests/compiler/new.debug.wat | 144 +- tests/compiler/object-literal.debug.wat | 790 +- tests/compiler/object-literal.release.wat | 49 +- .../optional-typeparameters.debug.wat | 162 +- tests/compiler/reexport.debug.wat | 156 +- tests/compiler/rereexport.debug.wat | 156 +- tests/compiler/rereexport.release.wat | 402 +- tests/compiler/resolve-access.debug.wat | 183 +- tests/compiler/resolve-binary.debug.wat | 150 +- .../compiler/resolve-elementaccess.debug.wat | 194 +- .../resolve-elementaccess.release.wat | 123 +- .../resolve-function-expression.debug.wat | 156 +- tests/compiler/resolve-new.debug.wat | 144 +- tests/compiler/resolve-new.release.wat | 266 +- .../compiler/resolve-propertyaccess.debug.wat | 162 +- tests/compiler/resolve-ternary.debug.wat | 154 +- tests/compiler/resolve-unary.debug.wat | 154 +- tests/compiler/return-unreachable.debug.wat | 176 +- tests/compiler/rt/finalize.debug.wat | 144 +- tests/compiler/rt/finalize.release.wat | 219 +- tests/compiler/rt/flags.debug.wat | 8 +- tests/compiler/rt/instanceof.debug.wat | 156 +- tests/compiler/rt/instanceof.release.wat | 88 +- .../rt/runtime-incremental-export.debug.wat | 144 +- .../rt/runtime-minimal-export.debug.wat | 126 +- .../compiler/rt/runtime-stub-export.debug.wat | 30 +- tests/compiler/simd.debug.wat | 168 +- tests/compiler/std/array-access.debug.wat | 54 +- tests/compiler/std/array-literal.debug.wat | 232 +- tests/compiler/std/array-literal.release.wat | 6 +- tests/compiler/std/array.debug.wat | 1297 +- tests/compiler/std/array.release.wat | 3397 +-- tests/compiler/std/arraybuffer.debug.wat | 204 +- tests/compiler/std/dataview.debug.wat | 326 +- tests/compiler/std/dataview.release.wat | 124 +- tests/compiler/std/date.debug.wat | 513 +- tests/compiler/std/hash.debug.wat | 6 +- tests/compiler/std/map.debug.wat | 6961 +++--- tests/compiler/std/map.release.wat | 6222 +++-- tests/compiler/std/new.debug.wat | 162 +- tests/compiler/std/new.release.wat | 189 +- tests/compiler/std/object.debug.wat | 8 +- .../std/operator-overloading.debug.wat | 814 +- .../std/operator-overloading.release.wat | 271 +- tests/compiler/std/pointer.debug.wat | 33 +- tests/compiler/std/set.debug.wat | 4449 ++-- tests/compiler/std/set.release.wat | 3873 ++- tests/compiler/std/static-array.debug.wat | 286 +- tests/compiler/std/staticarray.debug.wat | 278 +- tests/compiler/std/staticarray.release.wat | 944 +- .../compiler/std/string-casemapping.debug.wat | 162 +- tests/compiler/std/string-encoding.debug.wat | 166 +- tests/compiler/std/string-nonnull.debug.wat | 8 +- tests/compiler/std/string.debug.wat | 230 +- tests/compiler/std/symbol.debug.wat | 963 +- tests/compiler/std/symbol.release.wat | 170 +- tests/compiler/std/typedarray.debug.wat | 1656 +- tests/compiler/std/typedarray.release.wat | 20553 ++++++++-------- tests/compiler/std/uri.debug.wat | 160 +- tests/compiler/super-inline.debug.wat | 144 +- tests/compiler/templateliteral.debug.wat | 200 +- tests/compiler/throw.debug.wat | 120 +- tests/compiler/typeof.debug.wat | 156 +- tests/compiler/typeof.release.wat | 468 +- tests/compiler/while.debug.wat | 144 +- tests/compiler/while.release.wat | 468 +- 146 files changed, 44688 insertions(+), 32203 deletions(-) diff --git a/src/bindings/js.ts b/src/bindings/js.ts index cbf7848a9b..821f35a5b6 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -23,7 +23,7 @@ import { Interface, Enum, EnumValue, - Property + PropertyPrototype } from "../program"; import { @@ -1238,9 +1238,9 @@ export class JSBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Property) continue; - let property = member; - if (!property.isField) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + let property = (member).instance; // resolved during class finalization + if (!property || !property.isField) continue; assert(property.memoryOffset >= 0); indent(sb, this.indentLevel); sb.push(property.name); @@ -1282,9 +1282,9 @@ export class JSBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Property) continue; - let property = member; - if (!property.isField) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + let property = (member).instance; // resolved during class finalization + if (!property || !property.isField) continue; assert(property.memoryOffset >= 0); indent(sb, this.indentLevel); this.makeLowerToMemory(property.type, sb, "pointer + " + property.memoryOffset.toString(), "value." + memberName); diff --git a/src/bindings/tsd.ts b/src/bindings/tsd.ts index 358155d0d2..51bf5415d1 100644 --- a/src/bindings/tsd.ts +++ b/src/bindings/tsd.ts @@ -15,7 +15,7 @@ import { Enum, ElementKind, Element, - Property + PropertyPrototype } from "../program"; import { @@ -347,9 +347,9 @@ export class TSDBuilder extends ExportsWalker { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberName = _keys[i]; let member = assert(members.get(memberName)); - if (member.kind != ElementKind.Property) continue; - let property = member; - if (!property.isField) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + let property = (member).instance; // resolved during class finalization + if (!property || !property.isField) continue; sb.push(" /** @type `"); sb.push(property.type.toString()); sb.push("` */\n "); diff --git a/src/builtins.ts b/src/builtins.ts index 2efe53d2c9..46a28a4ba7 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -84,7 +84,7 @@ import { DecoratorFlags, ClassPrototype, Class, - Property + PropertyPrototype } from "./program"; import { @@ -1075,15 +1075,12 @@ function builtin_offsetof(ctx: BuiltinContext): ExpressionRef { return module.unreachable(); } let fieldName = (firstOperand).value; - let classMembers = classReference.members; - if (classMembers && classMembers.has(fieldName)) { - let member = assert(classMembers.get(fieldName)); - if (member.kind == ElementKind.Property) { - let property = member; - if (property.isField) { - assert(property.memoryOffset >= 0); - return contextualUsize(compiler, i64_new(property.memoryOffset), contextualType); - } + let fieldMember = classReference.getMember(fieldName); + if (fieldMember && fieldMember.kind == ElementKind.PropertyPrototype) { + let property = (fieldMember).instance; + if (property && property.isField) { + assert(property.memoryOffset >= 0); + return contextualUsize(compiler, i64_new(property.memoryOffset), contextualType); } } compiler.error( @@ -10265,35 +10262,31 @@ function ensureVisitMembersOf(compiler: Compiler, instance: Class): void { // TODO: for (let member of members.values()) { for (let _values = Map_values(members), j = 0, l = _values.length; j < l; ++j) { let member = unchecked(_values[j]); - if (member.kind == ElementKind.Property) { - let property = member; - if (property.isField) { - if (property.parent == instance) { - let fieldType = property.type; - if (fieldType.isManaged) { - let fieldOffset = property.memoryOffset; - assert(fieldOffset >= 0); - needsTempValue = true; - body.push( - // if ($2 = value) __visit($2, $1) - module.if( - module.local_tee(2, - module.load(sizeTypeSize, false, - module.local_get(0, sizeTypeRef), - sizeTypeRef, fieldOffset - ), - false // internal - ), - module.call(visitInstance.internalName, [ - module.local_get(2, sizeTypeRef), // value - module.local_get(1, TypeRef.I32) // cookie - ], TypeRef.None) - ) - ); - } - } - } - } + if (member.kind != ElementKind.PropertyPrototype) continue; + // Class should have resolved fields during finalization + let property = (member).instance; + if (!property) continue; + let fieldType = property.type; + if (!property.isField || property.getClassOrInterface() != instance || !fieldType.isManaged) continue; + let fieldOffset = property.memoryOffset; + assert(fieldOffset >= 0); + needsTempValue = true; + body.push( + // if ($2 = value) __visit($2, $1) + module.if( + module.local_tee(2, + module.load(sizeTypeSize, false, + module.local_get(0, sizeTypeRef), + sizeTypeRef, fieldOffset + ), + false // internal + ), + module.call(visitInstance.internalName, [ + module.local_get(2, sizeTypeRef), // value + module.local_get(1, TypeRef.I32) // cookie + ], TypeRef.None) + ) + ); } } } diff --git a/src/compiler.ts b/src/compiler.ts index 31d23481f8..33019da498 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -47,7 +47,6 @@ import { getLocalSetValue, getGlobalGetName, isGlobalMutable, - createType, getSideEffects, SideEffects, SwitchBuilder, @@ -55,7 +54,8 @@ import { isConstZero, isConstNegZero, isConstExpressionNaN, - ensureType + ensureType, + createType } from "./module"; import { @@ -421,7 +421,7 @@ export class Compiler extends DiagnosticEmitter { lazyFunctions: Set = new Set(); /** Pending class-specific instanceof helpers. */ pendingClassInstanceOf: Set = new Set(); - /** Virtually called stubs that may have overloads. */ + /** Virtually called stubs that may have overrides. */ virtualStubs: Set = new Set(); /** Elements currently undergoing compilation. */ pendingElements: Set = new Set(); @@ -577,20 +577,20 @@ export class Compiler extends DiagnosticEmitter { } let virtualStubsSeen = new Set(); do { - // virtual stubs and overloads have cross-dependencies on each other, in that compiling + // virtual stubs and overrides have cross-dependencies on each other, in that compiling // either may discover the respective other. do this in a loop until no more are found. - resolver.discoveredOverload = false; + resolver.discoveredOverride = false; for (let _values = Set_values(virtualStubs), i = 0, k = _values.length; i < k; ++i) { let instance = unchecked(_values[i]); - let overloadInstances = resolver.resolveOverloads(instance); - if (overloadInstances) { - for (let i = 0, k = overloadInstances.length; i < k; ++i) { - this.compileFunction(overloadInstances[i]); + let overrideInstances = resolver.resolveOverrides(instance); + if (overrideInstances) { + for (let i = 0, k = overrideInstances.length; i < k; ++i) { + this.compileFunction(overrideInstances[i]); } } virtualStubsSeen.add(instance); } - } while (virtualStubs.size > virtualStubsSeen.size || resolver.discoveredOverload); + } while (virtualStubs.size > virtualStubsSeen.size || resolver.discoveredOverride); virtualStubsSeen.clear(); for (let _values = Set_values(virtualStubs), i = 0, k = _values.length; i < k; ++i) { this.finalizeVirtualStub(_values[i]); @@ -1119,7 +1119,7 @@ export class Compiler extends DiagnosticEmitter { return false; } global.setType(resolvedType); - this.checkTypeSupported(global.type, typeNode); + this.program.checkTypeSupported(resolvedType, typeNode); // Otherwise infer type from initializer } else if (initializerNode) { @@ -1446,7 +1446,7 @@ export class Compiler extends DiagnosticEmitter { } } - // ensure the function hasn't duplicate parameters + // ensure the function has no duplicate parameters let parameters = instance.prototype.functionTypeNode.parameters; let numParameters = parameters.length; if (numParameters >= 2) { @@ -1478,7 +1478,7 @@ export class Compiler extends DiagnosticEmitter { assert(declarationNode.kind == NodeKind.FunctionDeclaration || declarationNode.kind == NodeKind.MethodDeclaration); this.checkSignatureSupported(instance.signature, (declarationNode).signature); - let funcRef: FunctionRef; + let funcRef: FunctionRef = 0; // concrete function if (bodyNode) { @@ -1569,13 +1569,28 @@ export class Compiler extends DiagnosticEmitter { null, module.unreachable() ); + } else { - this.error( - DiagnosticCode.Function_implementation_is_missing_or_not_immediately_following_the_declaration, - instance.identifierNode.range - ); - funcRef = 0; // TODO? - instance.set(CommonFlags.Errored); + // built-in field accessor? + if (instance.isAny(CommonFlags.Get | CommonFlags.Set)) { + let propertyName = instance.declaration.name.text; + let propertyParent = assert(instance.parent.getMember(propertyName)); + assert(propertyParent.kind == ElementKind.PropertyPrototype); + let propertyInstance = (propertyParent).instance; + if (propertyInstance && propertyInstance.isField) { + funcRef = instance.is(CommonFlags.Get) + ? this.makeBuiltinFieldGetter(propertyInstance) + : this.makeBuiltinFieldSetter(propertyInstance); + assert(instance.is(CommonFlags.Compiled)); + } + } + if (!funcRef) { + this.error( + DiagnosticCode.Function_implementation_is_missing_or_not_immediately_following_the_declaration, + instance.identifierNode.range + ); + instance.set(CommonFlags.Errored); + } } if (instance.is(CommonFlags.Ambient) || instance.is(CommonFlags.Export)) { @@ -1717,51 +1732,49 @@ export class Compiler extends DiagnosticEmitter { return true; } - /** Compiles an instance field to a getter and a setter. */ - compileField(instance: Field): bool { - this.compileFieldGetter(instance); - this.compileFieldSetter(instance); - return instance.is(CommonFlags.Compiled); - } - - /** Compiles the getter of the specified instance field. */ - compileFieldGetter(instance: Field): bool { - if (instance.getterRef) return true; + /** Makes a built-in getter of a property that is a field. */ + private makeBuiltinFieldGetter(property: Property): FunctionRef { + let getterInstance = assert(property.getterInstance); let module = this.module; - let valueType = instance.type; + let valueType = property.type; let valueTypeRef = valueType.toRef(); let thisTypeRef = this.options.sizeTypeRef; - // return this.field - instance.getterRef = module.addFunction(instance.internalGetterName, thisTypeRef, valueTypeRef, null, - module.load(valueType.byteSize, valueType.isSignedIntegerValue, - module.local_get(0, thisTypeRef), - valueTypeRef, instance.memoryOffset - ) + getterInstance.set(CommonFlags.Compiled); + let body = module.load(valueType.byteSize, valueType.isSignedIntegerValue, + module.local_get(0, thisTypeRef), + valueTypeRef, property.memoryOffset + ); + let flowBefore = this.currentFlow; + let flow = getterInstance.flow; + this.currentFlow = flow; + if (property.is(CommonFlags.DefinitelyAssigned) && valueType.isReference && !valueType.isNullableReference) { + body = this.makeRuntimeNonNullCheck(body, valueType, getterInstance.identifierNode); + } + this.currentFlow = flowBefore; + return module.addFunction( + getterInstance.internalName, + thisTypeRef, + valueTypeRef, + typesToRefs(getterInstance.getNonParameterLocalTypes()), + body ); - if (instance.setterRef) { - instance.set(CommonFlags.Compiled); - } else { - let typeNode = instance.typeNode; - if (typeNode) this.checkTypeSupported(instance.type, typeNode); - } - return true; } - /** Compiles the setter of the specified instance field. */ - compileFieldSetter(instance: Field): bool { - if (instance.setterRef) return true; - let type = instance.type; - let thisTypeRef = this.options.sizeTypeRef; - let valueTypeRef = type.toRef(); + /** Makes a built-in setter of a property that is a field. */ + private makeBuiltinFieldSetter(property: Property): FunctionRef { + let setterInstance = assert(property.setterInstance); let module = this.module; + let valueType = property.type; + let thisTypeRef = this.options.sizeTypeRef; + let valueTypeRef = valueType.toRef(); // void(this.field = value) - let bodyExpr = module.store(type.byteSize, + let bodyExpr = module.store(valueType.byteSize, module.local_get(0, thisTypeRef), module.local_get(1, valueTypeRef), - valueTypeRef, instance.memoryOffset + valueTypeRef, property.memoryOffset ); - if (type.isManaged) { - let parent = instance.parent; + if (valueType.isManaged) { + let parent = setterInstance.parent; assert(parent.kind == ElementKind.Class); if ((parent).type.isManaged) { let linkInstance = this.program.linkInstance; @@ -1776,20 +1789,14 @@ export class Compiler extends DiagnosticEmitter { ], TypeRef.None); } } - instance.setterRef = module.addFunction( - instance.internalSetterName, + setterInstance.set(CommonFlags.Compiled); + return module.addFunction( + setterInstance.internalName, createType([ thisTypeRef, valueTypeRef ]), TypeRef.None, null, bodyExpr ); - if (instance.getterRef) { - instance.set(CommonFlags.Compiled); - } else { - let typeNode = instance.typeNode; - if (typeNode) this.checkTypeSupported(instance.type, typeNode); - } - return true; } // === Memory =================================================================================== @@ -2930,7 +2937,7 @@ export class Compiler extends DiagnosticEmitter { cloneMap(flow.contextualTypeArguments) ); if (!type) continue; - this.checkTypeSupported(type, typeNode); + this.program.checkTypeSupported(type, typeNode); if (initializerNode) { let pendingElements = this.pendingElements; @@ -5702,6 +5709,12 @@ export class Compiler extends DiagnosticEmitter { } return this.makeGlobalAssignment(global, valueExpr, valueType, tee); } + case ElementKind.PropertyPrototype: { + let propertyInstance = this.resolver.resolveProperty(target); + if (!propertyInstance) return module.unreachable(); + target = propertyInstance; + // fall-through + } case ElementKind.Property: { let propertyInstance = target; if (propertyInstance.isField) { @@ -5722,21 +5735,6 @@ export class Compiler extends DiagnosticEmitter { if (isConstructor && thisExpression.kind == NodeKind.This) { flow.setThisFieldFlag(propertyInstance, FieldFlags.Initialized); } - // Compile as store if not overloaded - if (!propertyInstance.is(CommonFlags.Virtual)) { - let fieldParent = propertyInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - return this.makeFieldAssignment(propertyInstance, - valueExpr, - valueType, - this.compileExpression( - thisExpression, - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ), - tee - ); - } } let setterInstance = propertyInstance.setterInstance; if (!setterInstance) { @@ -5924,49 +5922,6 @@ export class Compiler extends DiagnosticEmitter { } } - /** Makes an assignment to a field. */ - private makeFieldAssignment( - /** The field to assign to. */ - field: Property, - /** The value to assign. */ - valueExpr: ExpressionRef, - /** The type of the value to assign. */ - valueType: Type, - /** The value of `this`. */ - thisExpr: ExpressionRef, - /** Whether to tee the value. */ - tee: bool - ): ExpressionRef { - let module = this.module; - let flow = this.currentFlow; - let fieldType = field.type; - let fieldTypeRef = fieldType.toRef(); - assert(field.parent.kind == ElementKind.Class); - let thisType = (field.parent).type; - - if (!field.is(CommonFlags.Compiled)) { - field.set(CommonFlags.Compiled); - let typeNode = field.typeNode; - if (typeNode) this.checkTypeSupported(field.type, typeNode); - } - - if (tee) { - this.compileField(field); - let tempThis = flow.getTempLocal(thisType); - let expr = module.block(null, [ - module.call(field.internalSetterName, [ module.local_tee(tempThis.index, thisExpr, thisType.isManaged), valueExpr ], TypeRef.None), - module.call(field.internalGetterName, [ module.local_get(tempThis.index, thisType.toRef()) ], fieldTypeRef) - ], fieldTypeRef); - this.currentType = fieldType; - return expr; - } else { - this.compileFieldSetter(field); - let expr = module.call(field.internalSetterName, [ thisExpr, valueExpr ], TypeRef.None); - this.currentType = Type.void; - return expr; - } - } - /** Compiles a call expression according to the specified context. */ private compileCallExpression( /** Call expression to compile. */ @@ -6128,31 +6083,6 @@ export class Compiler extends DiagnosticEmitter { let getterInstance = propertyInstance.getterInstance; let type = assert(this.resolver.getTypeOfElement(target)); - // Compile as load if not an overloaded field - if (propertyInstance.isField) { - signature = type.signatureReference; - if (signature) { - let fieldParent = propertyInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - let usizeType = this.options.usizeType; - functionArg = module.load(usizeType.byteSize, false, - this.compileExpression( - assert(thisExpression), - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ), - usizeType.toRef(), - propertyInstance.memoryOffset - ); - break; - } - this.error( - DiagnosticCode.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures, - expression.range, type.toString() - ); - return module.unreachable(); - } - if (!getterInstance) { this.error( DiagnosticCode.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures, @@ -6682,7 +6612,7 @@ export class Compiler extends DiagnosticEmitter { /** Ensures compilation of the virtual stub for the specified function. */ ensureVirtualStub(original: Function): Function { // A virtual stub is a function redirecting virtual calls to the actual - // overload targeted by the call. It utilizes varargs stubs where necessary + // override targeted by the call. It utilizes varargs stubs where necessary // and as such has the same semantics as one. Here, we only make sure that // a placeholder exist, with actual code being generated as a finalization // step once module compilation is otherwise complete. @@ -6731,39 +6661,39 @@ export class Compiler extends DiagnosticEmitter { TypeRef.I32 ) ); - let overloadInstances = this.resolver.resolveOverloads(instance); - if (overloadInstances) { - for (let i = 0, k = overloadInstances.length; i < k; ++i) { - let overloadInstance = overloadInstances[i]; - if (!overloadInstance.is(CommonFlags.Compiled)) continue; // errored - let overloadType = overloadInstance.type; + let overrideInstances = this.resolver.resolveOverrides(instance); + if (overrideInstances) { + for (let i = 0, k = overrideInstances.length; i < k; ++i) { + let overrideInstance = overrideInstances[i]; + if (!overrideInstance.is(CommonFlags.Compiled)) continue; // errored + let overrideType = overrideInstance.type; let originalType = instance.type; - if (!overloadType.isAssignableTo(originalType)) { + if (!overrideType.isAssignableTo(originalType)) { this.error( DiagnosticCode.Type_0_is_not_assignable_to_type_1, - overloadInstance.identifierNode.range, overloadType.toString(), originalType.toString() + overrideInstance.identifierNode.range, overrideType.toString(), originalType.toString() ); continue; } // TODO: additional optional parameters are not permitted by `isAssignableTo` yet - let overloadSignature = overloadInstance.signature; - let overloadParameterTypes = overloadSignature.parameterTypes; - let overloadNumParameters = overloadParameterTypes.length; - let paramExprs = new Array(1 + overloadNumParameters); + let overrideSignature = overrideInstance.signature; + let overrideParameterTypes = overrideSignature.parameterTypes; + let overrideNumParameters = overrideParameterTypes.length; + let paramExprs = new Array(1 + overrideNumParameters); paramExprs[0] = module.local_get(0, sizeTypeRef); // this for (let n = 1; n <= numParameters; ++n) { paramExprs[n] = module.local_get(n, parameterTypes[n - 1].toRef()); } let needsVarargsStub = false; - for (let n = numParameters; n < overloadNumParameters; ++n) { + for (let n = numParameters; n < overrideNumParameters; ++n) { // TODO: inline constant initializers and skip varargs stub - paramExprs[1 + n] = this.makeZero(overloadParameterTypes[n]); + paramExprs[1 + n] = this.makeZero(overrideParameterTypes[n]); needsVarargsStub = true; } let calledName = needsVarargsStub - ? this.ensureVarargsStub(overloadInstance).internalName - : overloadInstance.internalName; - let returnTypeRef = overloadSignature.returnType.toRef(); + ? this.ensureVarargsStub(overrideInstance).internalName + : overrideInstance.internalName; + let returnTypeRef = overrideSignature.returnType.toRef(); let stmts = new Array(); if (needsVarargsStub) { // Safe to prepend since paramExprs are local.get's @@ -6783,7 +6713,7 @@ export class Compiler extends DiagnosticEmitter { ) ); } - let classInstance = assert(overloadInstance.getClassOrInterface()); + let classInstance = assert(overrideInstance.getClassOrInterface()); builder.addCase(classInstance.id, stmts); // Also alias each extendee inheriting this exact overload let extendees = classInstance.getAllExtendees(instance.declaration.name.text); // without get:/set: @@ -6799,7 +6729,8 @@ export class Compiler extends DiagnosticEmitter { // invalid id, but can reduce code size significantly since we also don't // have to add branches for extendees inheriting the original function. let body: ExpressionRef; - if (instance.prototype.bodyNode) { + let instanceClass = instance.getClassOrInterface(); + if (!instance.is(CommonFlags.Abstract) && !(instanceClass && instanceClass.kind == ElementKind.Interface)) { let paramExprs = new Array(numParameters); paramExprs[0] = module.local_get(0, sizeTypeRef); // this for (let i = 0, k = parameterTypes.length; i < k; ++i) { @@ -8165,9 +8096,11 @@ export class Compiler extends DiagnosticEmitter { ); // tempData = tempThis.dataStart let dataStartMember = assert(arrayInstance.getMember("dataStart")); - assert(dataStartMember.kind == ElementKind.Property); - let dataStartProperty = dataStartMember; - assert(dataStartProperty.memoryOffset >= 0); + assert(dataStartMember.kind == ElementKind.PropertyPrototype); + // is a field, so should have been resolved during class finalization + let dataStartProperty = (dataStartMember).instance; + if (!dataStartProperty) return module.unreachable(); + assert(dataStartProperty.isField && dataStartProperty.memoryOffset >= 0); stmts.push( module.local_set(tempDataStart.index, module.load(arrayType.byteSize, false, @@ -8407,9 +8340,10 @@ export class Compiler extends DiagnosticEmitter { for (let _keys = Map_keys(members), i = 0, k = _keys.length; i < k; ++i) { let memberKey = _keys[i]; let member = assert(members.get(memberKey)); - if (member && member.kind == ElementKind.Property) { - let property = member; - if (property.isField) { + if (member && member.kind == ElementKind.PropertyPrototype) { + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (property && property.isField) { omittedFields.add(property); // incl. private/protected } } @@ -8421,7 +8355,7 @@ export class Compiler extends DiagnosticEmitter { for (let i = 0; i < numNames; ++i) { let memberName = names[i].text; let member = classReference.getMember(memberName); - if (!member || member.kind != ElementKind.Property) { + if (!member || member.kind != ElementKind.PropertyPrototype) { this.error( DiagnosticCode.Property_0_does_not_exist_on_type_1, names[i].range, memberName, classType.toString() @@ -8445,9 +8379,10 @@ export class Compiler extends DiagnosticEmitter { hasErrors = true; continue; } - let propertyInstance = member; + let propertyInstance = this.resolver.resolveProperty(member); + if (!propertyInstance) continue; let setterInstance = propertyInstance.setterInstance; - if (!setterInstance) { // TODO: allow readonly fields? + if (!setterInstance) { this.error( DiagnosticCode.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property, names[i].range, memberName, classType.toString() @@ -8468,16 +8403,14 @@ export class Compiler extends DiagnosticEmitter { } let propertyType = propertyInstance.type; - assert(propertyInstance.memoryOffset >= 0); - exprs.push( - module.store( - propertyType.byteSize, - module.local_get(tempLocal.index, classTypeRef), - this.compileExpression(values[i], propertyType, Constraints.ConvImplicit), - propertyType.toRef(), - propertyInstance.memoryOffset - ) - ); + let expr = this.makeCallDirect(setterInstance, [ + module.local_get(tempLocal.index, classTypeRef), + this.compileExpression(values[i], propertyType, Constraints.ConvImplicit), + ], setterInstance.identifierNode, true); + if (this.currentType != Type.void) { // in case + expr = module.drop(expr); + } + exprs.push(expr); } // Call deferred real property setters after @@ -8531,6 +8464,7 @@ export class Compiler extends DiagnosticEmitter { case TypeKind.Usize: case TypeKind.F32: case TypeKind.F64: { + // Can store zeroes directly (no need to __link) exprs.push( module.store( propertyType.byteSize, @@ -8773,9 +8707,10 @@ export class Compiler extends DiagnosticEmitter { if (members) { for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { let element = _values[i]; - if (element.kind != ElementKind.Property || element.parent != classInstance) continue; - let property = element; - if (!property.isField) continue; + if (element.kind != ElementKind.PropertyPrototype || element.parent != classInstance) continue; + // only interested in fields (resolved during class finalization) + let property = (element).instance; + if (!property || !property.isField) continue; if (!property.initializerNode && !flow.isThisFieldFlag(property, FieldFlags.Initialized)) { if (!property.is(CommonFlags.DefinitelyAssigned)) { if (relatedNode) { @@ -8903,15 +8838,9 @@ export class Compiler extends DiagnosticEmitter { case ElementKind.Property: { let propertyInstance = target; if (propertyInstance.isField) { - let fieldType = propertyInstance.type; - assert(propertyInstance.memoryOffset >= 0); - let fieldParent = propertyInstance.parent; - assert(fieldParent.kind == ElementKind.Class); - thisExpression = assert(thisExpression); - let thisType = this.currentType; if ( flow.sourceFunction.is(CommonFlags.Constructor) && - thisExpression.kind == NodeKind.This && + assert(thisExpression).kind == NodeKind.This && !flow.isThisFieldFlag(propertyInstance, FieldFlags.Initialized) && !propertyInstance.is(CommonFlags.DefinitelyAssigned) ) { @@ -8922,38 +8851,6 @@ export class Compiler extends DiagnosticEmitter { propertyInstance.internalName ); } - if (!propertyInstance.is(CommonFlags.Virtual)) { - let thisExpr = this.compileExpression( - thisExpression, - (fieldParent).type, - Constraints.ConvImplicit | Constraints.IsThis - ); - if (thisType.isNullableReference) { - if (!flow.isNonnull(thisExpr, thisType)) { - this.error( - DiagnosticCode.Object_is_possibly_null, - thisExpression.range - ); - } - } - if (!propertyInstance.is(CommonFlags.Compiled)) { - propertyInstance.set(CommonFlags.Compiled); - let typeNode = propertyInstance.typeNode; - if (typeNode) this.checkTypeSupported(propertyInstance.type, typeNode); - } - this.currentType = fieldType; - let ret = module.load( - fieldType.byteSize, - fieldType.isSignedIntegerValue, - thisExpr, - fieldType.toRef(), - propertyInstance.memoryOffset - ); - if (propertyInstance.is(CommonFlags.DefinitelyAssigned) && fieldType.isReference && !fieldType.isNullableReference) { - ret = this.makeRuntimeNonNullCheck(ret, fieldType, expression); - } - return ret; - } } let getterInstance = propertyInstance.getterInstance; if (!getterInstance) return module.unreachable(); // failed earlier @@ -9813,84 +9710,12 @@ export class Compiler extends DiagnosticEmitter { targetFunction.debugLocations.push(range); } - /** Checks whether a particular feature is enabled. */ - checkFeatureEnabled(feature: Feature, reportNode: Node): bool { - if (!this.options.hasFeature(feature)) { - this.error( - DiagnosticCode.Feature_0_is_not_enabled, - reportNode.range, featureToString(feature) - ); - return false; - } - return true; - } - - /** Checks whether a particular type is supported. */ - checkTypeSupported(type: Type, reportNode: Node): bool { - switch (type.kind) { - case TypeKind.V128: return this.checkFeatureEnabled(Feature.Simd, reportNode); - case TypeKind.Funcref: - case TypeKind.Externref: - return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode); - case TypeKind.Anyref: - case TypeKind.Eqref: - case TypeKind.I31ref: - case TypeKind.Dataref: - case TypeKind.Arrayref: { - return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) - && this.checkFeatureEnabled(Feature.GC, reportNode); - } - case TypeKind.Stringref: - case TypeKind.StringviewWTF8: - case TypeKind.StringviewWTF16: - case TypeKind.StringviewIter: { - return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) - && this.checkFeatureEnabled(Feature.Stringref, reportNode); - } - } - let classReference = type.getClass(); - if (classReference) { - do { - let typeArguments = classReference.typeArguments; - if (typeArguments) { - for (let i = 0, k = typeArguments.length; i < k; ++i) { - if (!this.checkTypeSupported(typeArguments[i], reportNode)) { - return false; - } - } - } - classReference = classReference.base; - } while(classReference); - } else { - let signatureReference = type.getSignature(); - if (signatureReference) { - let thisType = signatureReference.thisType; - if (thisType) { - if (!this.checkTypeSupported(thisType, reportNode)) { - return false; - } - } - let parameterTypes = signatureReference.parameterTypes; - for (let i = 0, k = parameterTypes.length; i < k; ++i) { - if (!this.checkTypeSupported(parameterTypes[i], reportNode)) { - return false; - } - } - let returnType = signatureReference.returnType; - if (!this.checkTypeSupported(returnType, reportNode)) { - return false; - } - } - } - return true; - } - /** Checks whether a particular function signature is supported. */ checkSignatureSupported(signature: Signature, reportNode: FunctionTypeNode): bool { let supported = true; let explicitThisType = reportNode.explicitThisType; if (explicitThisType) { - if (!this.checkTypeSupported(assert(signature.thisType), explicitThisType)) { + if (!this.program.checkTypeSupported(assert(signature.thisType), explicitThisType)) { supported = false; } } @@ -9900,11 +9725,11 @@ export class Compiler extends DiagnosticEmitter { let parameterReportNode: Node; if (parameterNodes.length > i) parameterReportNode = parameterNodes[i]; else parameterReportNode = reportNode; - if (!this.checkTypeSupported(parameterTypes[i], parameterReportNode)) { + if (!this.program.checkTypeSupported(parameterTypes[i], parameterReportNode)) { supported = false; } } - if (!this.checkTypeSupported(signature.returnType, reportNode.returnType)) { + if (!this.program.checkTypeSupported(signature.returnType, reportNode.returnType)) { supported = false; } return supported; @@ -10249,12 +10074,10 @@ export class Compiler extends DiagnosticEmitter { // 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]); - let property: Property; - if ( - member.kind != ElementKind.Property || // not a property - member.parent != classInstance || // inherited field - !(property = member).isField // not a field - ) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField || property.getClassOrInterface() != classInstance) continue; assert(!property.isAny(CommonFlags.Const)); let fieldPrototype = property.prototype; let parameterIndex = fieldPrototype.parameterIndex; @@ -10270,20 +10093,20 @@ export class Compiler extends DiagnosticEmitter { let fieldType = property.type; let fieldTypeRef = fieldType.toRef(); assert(!fieldPrototype.initializerNode); - stmts.push( - module.store( - fieldType.byteSize, - module.local_get(thisLocalIndex, sizeTypeRef), - module.local_get( - isInline - ? flow.lookupLocal(property.name)!.index - : 1 + parameterIndex, // `this` is local 0 - fieldTypeRef - ), - fieldType.toRef(), - property.memoryOffset + 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 @@ -10294,17 +10117,17 @@ export class Compiler extends DiagnosticEmitter { let fieldPrototype = field.prototype; let initializerNode = fieldPrototype.initializerNode; assert(fieldPrototype.parameterIndex < 0); - stmts.push( - module.store( - fieldType.byteSize, - module.local_get(thisLocalIndex, sizeTypeRef), - initializerNode // use initializer if present, otherwise initialize with zero - ? this.compileExpression(initializerNode, fieldType, Constraints.ConvImplicit) - : this.makeZero(fieldType), - fieldType.toRef(), - field.memoryOffset - ) - ); + 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); } } diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 076a7fe8f1..dc1114bfee 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -185,6 +185,7 @@ "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.": 2651, "Constructor of class '{0}' is private and only accessible within the class declaration.": 2673, "Constructor of class '{0}' is protected and only accessible within the class declaration.": 2674, + "Cannot extend a class '{0}'. Class constructor is marked as private.": 2675, "The 'this' types of each signature are incompatible.": 2685, "Namespace '{0}' has no exported member '{1}'.": 2694, "Required type parameters may not follow optional type parameters.": 2706, diff --git a/src/diagnostics.ts b/src/diagnostics.ts index e122c46da5..9ca1e3d4e1 100644 --- a/src/diagnostics.ts +++ b/src/diagnostics.ts @@ -220,11 +220,17 @@ export function formatDiagnosticMessage( let range = message.range; if (range) { let source = range.source; + let relatedRange = message.relatedRange; + let minLine = 0; + if (relatedRange) { + // Justify context indentation when multiple ranges are present + minLine = max(source.lineAt(range.start), relatedRange.source.lineAt(relatedRange.start)); + } // include context information if requested if (showContext) { sb.push("\n"); - sb.push(formatDiagnosticContext(range)); + sb.push(formatDiagnosticContext(range, minLine)); } else { sb.push("\n in "); sb.push(source.normalizedPath); @@ -235,12 +241,11 @@ export function formatDiagnosticMessage( sb.push(source.columnAt().toString()); sb.push(")"); - let relatedRange = message.relatedRange; if (relatedRange) { let relatedSource = relatedRange.source; if (showContext) { sb.push("\n"); - sb.push(formatDiagnosticContext(relatedRange)); + sb.push(formatDiagnosticContext(relatedRange, minLine)); } else { sb.push("\n in "); sb.push(relatedSource.normalizedPath); @@ -257,14 +262,17 @@ export function formatDiagnosticMessage( } /** Formats the diagnostic context for the specified range, optionally with terminal colors. */ -function formatDiagnosticContext(range: Range): string { +function formatDiagnosticContext(range: Range, minLine: i32 = 0): string { let source = range.source; let text = source.text; let len = text.length; let start = range.start; let end = start; let lineNumber = source.lineAt(start).toString(); - let lineSpace = " ".repeat(lineNumber.length); + let lineNumberLength = minLine + ? max(minLine.toString().length, lineNumber.length) + : lineNumber.length; + let lineSpace = " ".repeat(lineNumberLength); // Find preceeding line break while (start > 0 && !isLineBreak(text.charCodeAt(start - 1))) start--; // Skip leading whitespace (assume no supplementary whitespaces) @@ -274,6 +282,7 @@ function formatDiagnosticContext(range: Range): string { let sb: string[] = [ lineSpace, " :\n ", + " ".repeat(lineNumberLength - lineNumber.length), lineNumber, " │ ", text.substring(start, end).replaceAll("\t", " "), diff --git a/src/flow.ts b/src/flow.ts index 053bc27d3c..fbf9f296b1 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -30,7 +30,8 @@ import { Class, TypedElement, mangleInternalName, - Property + Property, + PropertyPrototype } from "./program"; import { @@ -477,12 +478,13 @@ export class Flow { if (members) { for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { let member = _values[i]; - if (member.kind != ElementKind.Property) continue; - let property = member; - if (!property.isField) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField) continue; if ( // guaranteed by super - property.parent != classInstance || + property.prototype.parent != classInstance || // has field initializer property.initializerNode || // is initialized as a ctor parameter diff --git a/src/module.ts b/src/module.ts index a08ed50fba..170b1ae131 100644 --- a/src/module.ts +++ b/src/module.ts @@ -24,7 +24,7 @@ import { } from "./types"; import { ElementKind, - Property + PropertyPrototype } from "./program"; import * as binaryen from "./glue/binaryen"; @@ -3828,9 +3828,10 @@ function prepareType(builder: binaryen.TypeBuilderRef, seen: Mapmember; - if (!property.isField) continue; + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField) continue; let fieldType = property.type; if (DEBUG_TYPEBUILDER) { console.log(` field ${fieldType.toString()}`); diff --git a/src/program.ts b/src/program.ts index 3a86169c09..4fdc1f314f 100644 --- a/src/program.ts +++ b/src/program.ts @@ -24,14 +24,12 @@ // │ │ │ ├─EnumValue Enum value // │ │ │ ├─Global File global // │ │ │ ├─Local Function local -// │ │ │ ├─Field Class field (instance only) -// │ │ │ └─Property Class property +// │ │ │ └─Property Class property (incl. instance fields) // │ │ ├─IndexSignature Class index signature // │ │ ├─Function Concrete function instance // │ │ └─Class Concrete class instance // │ ├─Namespace Namespace with static members // │ ├─FunctionPrototype Prototype of concrete function instances -// │ ├─FieldPrototype Prototype of concrete field instances // │ ├─PropertyPrototype Prototype of concrete property instances // │ └─ClassPrototype Prototype of concrete classe instances // └─File File, analogous to Source in the AST @@ -48,7 +46,8 @@ import { STUB_DELIMITER, CommonNames, Feature, - Target + Target, + featureToString } from "./common"; import { @@ -112,9 +111,6 @@ import { VariableStatement, ParameterKind, ParameterNode, - ReturnStatement, - CallExpression, - ThisExpression, TypeName } from "./ast"; @@ -442,7 +438,7 @@ export class Program extends DiagnosticEmitter { } /** Parser instance. */ - parser: Parser; + parser!: Parser; /** Resolver instance. */ resolver!: Resolver; /** Array of sources. */ @@ -1549,6 +1545,11 @@ export class Program extends DiagnosticEmitter { thisProperty.identifierNode.range, baseProperty.identifierNode.range ); } + if (thisProperty.isField && basePrototype.kind != ElementKind.InterfacePrototype) { + // fields cannot be overridden (only redeclared with same type), except if + // declared in an interface, then making the field behave like a property + continue; + } baseProperty.set(CommonFlags.Virtual); let baseGetter = baseProperty.getterPrototype; if (baseGetter) { @@ -1890,6 +1891,78 @@ export class Program extends DiagnosticEmitter { return flags; } + /** Checks whether a particular feature is enabled. */ + checkFeatureEnabled(feature: Feature, reportNode: Node): bool { + if (!this.options.hasFeature(feature)) { + this.error( + DiagnosticCode.Feature_0_is_not_enabled, + reportNode.range, featureToString(feature) + ); + return false; + } + return true; + } + + /** Checks whether a particular type is supported. */ + checkTypeSupported(type: Type, reportNode: Node): bool { + switch (type.kind) { + case TypeKind.V128: return this.checkFeatureEnabled(Feature.Simd, reportNode); + case TypeKind.Funcref: + case TypeKind.Externref: + return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode); + case TypeKind.Anyref: + case TypeKind.Eqref: + case TypeKind.I31ref: + case TypeKind.Dataref: + case TypeKind.Arrayref: { + return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) + && this.checkFeatureEnabled(Feature.GC, reportNode); + } + case TypeKind.Stringref: + case TypeKind.StringviewWTF8: + case TypeKind.StringviewWTF16: + case TypeKind.StringviewIter: { + return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) + && this.checkFeatureEnabled(Feature.Stringref, reportNode); + } + } + let classReference = type.getClass(); + if (classReference) { + do { + let typeArguments = classReference.typeArguments; + if (typeArguments) { + for (let i = 0, k = typeArguments.length; i < k; ++i) { + if (!this.checkTypeSupported(typeArguments[i], reportNode)) { + return false; + } + } + } + classReference = classReference.base; + } while(classReference); + } else { + let signatureReference = type.getSignature(); + if (signatureReference) { + let thisType = signatureReference.thisType; + if (thisType) { + if (!this.checkTypeSupported(thisType, reportNode)) { + return false; + } + } + let parameterTypes = signatureReference.parameterTypes; + for (let i = 0, k = parameterTypes.length; i < k; ++i) { + if (!this.checkTypeSupported(parameterTypes[i], reportNode)) { + return false; + } + } + let returnType = signatureReference.returnType; + if (!this.checkTypeSupported(returnType, reportNode)) { + return false; + } + } + } + return true; + } + /** Initializes a class declaration. */ private initializeClass( /** The declaration to initialize. */ @@ -2999,7 +3072,9 @@ export abstract class DeclaredElement extends Element { let identifierNode = declaration.name; if (declaration.kind == NodeKind.FunctionDeclaration || declaration.kind == NodeKind.MethodDeclaration) { let signatureNode = (declaration).signature; - return Range.join(identifierNode.range, signatureNode.range); + if (identifierNode.range.source == signatureNode.range.source) { + return Range.join(identifierNode.range, signatureNode.range); + } } return identifierNode.range; } @@ -3008,63 +3083,6 @@ export abstract class DeclaredElement extends Element { get decoratorNodes(): DecoratorNode[] | null { return this.declaration.decorators; } - - /** Checks if this element is a compatible override of the specified. */ - isCompatibleOverride(base: DeclaredElement): bool { - let self: DeclaredElement = this; // TS - let kind = self.kind; - let checkCompatibleOverride = false; - if (kind == base.kind) { - switch (kind) { - case ElementKind.FunctionPrototype : { - let selfFunction = this.program.resolver.resolveFunction(self, null); - if (!selfFunction) return false; - let baseFunction = this.program.resolver.resolveFunction(base, null); - if (!baseFunction) return false; - self = selfFunction; - base = baseFunction; - checkCompatibleOverride = true; - // fall-through - } - case ElementKind.Function: { - return (self).signature.isAssignableTo((base).signature, checkCompatibleOverride); - } - case ElementKind.PropertyPrototype: { - let selfProperty = this.program.resolver.resolveProperty(self); - if (!selfProperty) return false; - let baseProperty = this.program.resolver.resolveProperty(base); - if (!baseProperty) return false; - self = selfProperty; - base = baseProperty; - // fall-through - } - case ElementKind.Property: { - let selfProperty = self; - let baseProperty = base; - let selfGetter = selfProperty.getterInstance; - let baseGetter = baseProperty.getterInstance; - if (selfGetter) { - if (!baseGetter || !selfGetter.signature.isAssignableTo(baseGetter.signature, true)) { - return false; - } - } else if (baseGetter) { - return false; - } - let selfSetter = selfProperty.setterInstance; - let baseSetter = baseProperty.setterInstance; - if (selfSetter) { - if (!baseSetter || !selfSetter.signature.isAssignableTo(baseSetter.signature, true)) { - return false; - } - } else if (baseSetter) { - return false; - } - return true; - } - } - } - return false; - } } // Kinds of all typed elements @@ -3888,15 +3906,47 @@ export class PropertyPrototype extends DeclaredElement { // properties, with compiler-generated accessors for cases they are used // like properties. As a result, emitting actual loads and stores becomes an // optimization in non-overloaded cases. - let getterDeclaration = makeFieldGetterDeclaration(fieldDeclaration, parent); + let nativeRange = Source.native.range; + let typeNode = fieldDeclaration.type; + if (!typeNode) typeNode = Node.createOmittedType(fieldDeclaration.name.range.atEnd); + let getterDeclaration = new MethodDeclaration( + fieldDeclaration.name, + fieldDeclaration.decorators, + fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Get, + null, + new FunctionTypeNode([], typeNode, null, false, nativeRange), + null, + nativeRange + ); + let setterDeclaration = new MethodDeclaration( + fieldDeclaration.name, + fieldDeclaration.decorators, + fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Set, + null, + new FunctionTypeNode( + [ + new ParameterNode( + ParameterKind.Default, + new IdentifierExpression("value", false, nativeRange), + typeNode, null, nativeRange + ) + ], + new NamedTypeNode( + new TypeName( + new IdentifierExpression("", false, nativeRange), + null, nativeRange + ), + null, false, nativeRange + ), + null, false, nativeRange + ), + null, nativeRange + ); let prototype = new PropertyPrototype(name, parent, getterDeclaration); prototype.fieldDeclaration = fieldDeclaration; - prototype.getterPrototype = new FunctionPrototype(GETTER_PREFIX + name, parent, getterDeclaration); - if (!fieldDeclaration.is(CommonFlags.Readonly)) { - let setterDeclaration = makeFieldSetterDeclaration(fieldDeclaration, parent); - prototype.setterPrototype = new FunctionPrototype(SETTER_PREFIX + name, parent, setterDeclaration); - } prototype.decoratorFlags = decoratorFlags; + prototype.getterPrototype = new FunctionPrototype(GETTER_PREFIX + name, parent, getterDeclaration, decoratorFlags); + prototype.setterPrototype = new FunctionPrototype(SETTER_PREFIX + name, parent, setterDeclaration, decoratorFlags); return prototype; } @@ -4029,15 +4079,15 @@ export class Property extends VariableLikeElement { ElementKind.Property, prototype.name, parent, - Node.createVariableDeclaration( - prototype.identifierNode, - null, - prototype.is(CommonFlags.Instance) - ? CommonFlags.Instance - : CommonFlags.None, - null, null, - prototype.identifierNode.range - ) + prototype.isField + ? assert(prototype.fieldDeclaration) + : Node.createVariableDeclaration( + prototype.identifierNode, + null, + prototype.flags & CommonFlags.Instance, + null, null, + prototype.identifierNode.range + ) ); this.prototype = prototype; this.flags = prototype.flags; @@ -4051,6 +4101,16 @@ export class Property extends VariableLikeElement { get isField(): bool { return this.prototype.isField; } + + /** Gets the class or interface this property belongs to, if an instance property. */ + getClassOrInterface(): Class | null { + let parent = this.parent; + if (parent.kind == ElementKind.PropertyPrototype) parent = parent.parent; + if (parent.kind == ElementKind.Class || parent.kind == ElementKind.Interface) { + return parent; + } + return null; + } } /** A resolved index signature. */ @@ -4293,11 +4353,11 @@ export class Class extends TypedElement { prototype.parent, prototype.declaration ); - let program = this.program; this.prototype = prototype; this.flags = prototype.flags; this.decoratorFlags = prototype.decoratorFlags; this.typeArguments = typeArguments; + let program = this.program; let usizeType = program.options.usizeType; let type = new Type(usizeType.kind, usizeType.flags & ~TypeFlags.Value | TypeFlags.Reference, usizeType.size); type.classReference = this; @@ -4424,10 +4484,14 @@ export class Class extends TypedElement { /** Calculates the memory offset of the specified field. */ offsetof(fieldName: string): u32 { let member = assert(this.getMember(fieldName)); - assert(member.kind == ElementKind.Property); - let property = member; - assert(property.isField && property.memoryOffset >= 0); - return property.memoryOffset; + assert(member.kind == ElementKind.PropertyPrototype); + let prototype = member; + let property = prototype.instance; + if (property) { // would have failed before + assert(property.isField && property.memoryOffset >= 0); + return property.memoryOffset; + } + return 0; } /** Creates a buffer suitable to hold a runtime instance of this class. */ @@ -4448,68 +4512,68 @@ export class Class extends TypedElement { /** Writes a field value to a buffer and returns the number of bytes written. */ writeField(name: string, value: T, buffer: Uint8Array, baseOffset: i32 = this.program.totalOverhead): i32 { let member = this.getMember(name); - if (member && member.kind == ElementKind.Property) { - let property = member; - if (property.isField) { - assert(property.memoryOffset >= 0); - let offset = baseOffset + property.memoryOffset; - let typeKind = property.type.kind; - switch (typeKind) { - case TypeKind.I8: - case TypeKind.U8: { - assert(!i64_is(value)); - writeI8(i32(value), buffer, offset); - return 1; - } - case TypeKind.I16: - case TypeKind.U16: { - assert(!i64_is(value)); - writeI16(i32(value), buffer, offset); - return 2; - } - case TypeKind.I32: - case TypeKind.U32: { - assert(!i64_is(value)); - writeI32(i32(value), buffer, offset); - return 4; - } - case TypeKind.Isize: - case TypeKind.Usize: { - if (this.program.options.isWasm64) { - if (i64_is(value)) { - writeI64(value, buffer, offset); - } else { - writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.Usize); - } - return 8; - } else { - if (i64_is(value)) { - writeI64AsI32(value, buffer, offset, typeKind == TypeKind.Usize); - } else { - writeI32(i32(value), buffer, offset); - } - return 4; - } - } - case TypeKind.I64: - case TypeKind.U64: { + if (member && member.kind == ElementKind.PropertyPrototype) { + let prototype = member; + let property = prototype.instance; // resolved during class finalization + if (!property) return 0; // failed before + assert(property.isField && property.memoryOffset >= 0); + let offset = baseOffset + property.memoryOffset; + let typeKind = property.type.kind; + switch (typeKind) { + case TypeKind.I8: + case TypeKind.U8: { + assert(!i64_is(value)); + writeI8(i32(value), buffer, offset); + return 1; + } + case TypeKind.I16: + case TypeKind.U16: { + assert(!i64_is(value)); + writeI16(i32(value), buffer, offset); + return 2; + } + case TypeKind.I32: + case TypeKind.U32: { + assert(!i64_is(value)); + writeI32(i32(value), buffer, offset); + return 4; + } + case TypeKind.Isize: + case TypeKind.Usize: { + if (this.program.options.isWasm64) { if (i64_is(value)) { writeI64(value, buffer, offset); } else { - writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.U64); + writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.Usize); } return 8; - } - case TypeKind.F32: { - assert(!i64_is(value)); - writeF32(f32(value), buffer, offset); + } else { + if (i64_is(value)) { + writeI64AsI32(value, buffer, offset, typeKind == TypeKind.Usize); + } else { + writeI32(i32(value), buffer, offset); + } return 4; } - case TypeKind.F64: { - assert(!i64_is(value)); - writeF64(f64(value), buffer, offset); - return 8; + } + case TypeKind.I64: + case TypeKind.U64: { + if (i64_is(value)) { + writeI64(value, buffer, offset); + } else { + writeI32AsI64(i32(value), buffer, offset, typeKind == TypeKind.U64); } + return 8; + } + case TypeKind.F32: { + assert(!i64_is(value)); + writeF32(f32(value), buffer, offset); + return 4; + } + case TypeKind.F64: { + assert(!i64_is(value)); + writeF64(f64(value), buffer, offset); + return 8; } } } @@ -4585,8 +4649,10 @@ export class Class extends TypedElement { // Check that there are no managed instance fields for (let _values = Map_values(instanceMembers), i = 0, k = _values.length; i < k; ++i) { let member = unchecked(_values[i]); - if (member.kind == ElementKind.Property) { - let property = member; + if (member.kind == ElementKind.PropertyPrototype) { + let prototype = member; + let property = prototype.instance; // resolved during class finalization + if (!property) continue; // failed earlier if (property.isField && property.type.isManaged) return false; } } @@ -4834,141 +4900,3 @@ export function getDefaultParameterName(index: i32): string { } return cachedDefaultParameterNames[index]; } - -/** Makes a field getter declaration. */ -function makeFieldGetterDeclaration( - /** The field declaration to make a getter declaration for. */ - fieldDeclaration: FieldDeclaration, - /** The parent class prototype. */ - classPrototype: ClassPrototype -): FunctionDeclaration { - let range = Source.native.range; - let type = fieldDeclaration.type!; // TODO - // get name(): Type { - // return load(changetype(this), offsetof("name")); - // } - return new MethodDeclaration( - fieldDeclaration.name, - fieldDeclaration.decorators, - fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Get, - null, - new FunctionTypeNode([], type, null, false, range), - new ReturnStatement( - new CallExpression( - new IdentifierExpression("load", false, range), - [ type ], [ - new CallExpression( - new IdentifierExpression("changetype", false, range), - [ - new NamedTypeNode( - new TypeName( - new IdentifierExpression("usize", false, range), - null, range - ), - null, false, range - ) - ], [ - new ThisExpression(range) - ], - range - ), - new CallExpression( - new IdentifierExpression("offsetof", false, range), - [ - new NamedTypeNode( - new TypeName( - new IdentifierExpression(classPrototype.name, false, range), - null, range - ), - null, false, range - ) - ], [ - new StringLiteralExpression(fieldDeclaration.name.text, range) - ], - range - ) - ], - range - ), - range - ), - range - ); -} - -/** Makes a field setter declaration. */ -function makeFieldSetterDeclaration( - /** The field declaration to make a setter declaration for. */ - fieldDeclaration: FieldDeclaration, - /** The parent class prototype. */ - classPrototype: ClassPrototype -): FunctionDeclaration { - let range = Source.native.range; - let type = fieldDeclaration.type!; // TODO - // set name(value: Type) { - // store(changetype(this), value, offsetof("fieldname")); - // } - return new MethodDeclaration( - fieldDeclaration.name, - fieldDeclaration.decorators, - fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Set, - null, - new FunctionTypeNode( - [ - new ParameterNode( - ParameterKind.Default, - new IdentifierExpression("value", false, range), - type, null, range - ) - ], - new NamedTypeNode( - new TypeName( - new IdentifierExpression("", false, range), - null, range - ), - null, false, range - ), - null, false, range - ), - new CallExpression( - new IdentifierExpression("store", false, range), - [ - type - ], [ - new CallExpression( - new IdentifierExpression("changetype", false, range), - [ - new NamedTypeNode( - new TypeName( - new IdentifierExpression("usize", false, range), - null, range - ), - null, false, range - ) - ], [ - new ThisExpression(range) - ], - range - ), - new IdentifierExpression("value", false, range), - new CallExpression( - new IdentifierExpression("offsetof", false, range), - [ - new NamedTypeNode( - new TypeName( - new IdentifierExpression(classPrototype.name, false, range), - null, range - ), - null, false, range - ) - ], [ - new StringLiteralExpression(fieldDeclaration.name.text, range) - ], - range - ) - ], - range - ), - range - ); -} diff --git a/src/resolver.ts b/src/resolver.ts index 6a42abdccb..c8491c68a8 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -123,8 +123,8 @@ export class Resolver extends DiagnosticEmitter { currentThisExpression: Expression | null = null; /** Element expression of the previously resolved element access. */ currentElementExpression : Expression | null = null; - /** Whether a new overload has been discovered. */ - discoveredOverload: bool = false; + /** Whether a new override has been discovered. */ + discoveredOverride: bool = false; /** Constructs the resolver for the specified program. */ constructor( @@ -2445,6 +2445,12 @@ export class Resolver extends DiagnosticEmitter { if (!instance) return null; return instance.signature.returnType; } + case ElementKind.PropertyPrototype: { + let propertyInstance = this.resolveProperty(target, reportMode); + if (!propertyInstance) return null; + target = propertyInstance; + // fall-through + } case ElementKind.Global: case ElementKind.Local: case ElementKind.Property: { @@ -2722,7 +2728,8 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Function | null { - let actualParent = prototype.parent.kind == ElementKind.PropertyPrototype + let isAccessor = prototype.parent.kind == ElementKind.PropertyPrototype; + let actualParent = isAccessor ? prototype.parent.parent : prototype.parent; let classInstance: Class | null = null; // if an instance method @@ -2868,17 +2875,54 @@ export class Resolver extends DiagnosticEmitter { ); prototype.setResolvedInstance(instanceKey, instance); - // remember discovered overloads for virtual stub finalization + // check against overridden base member if (classInstance) { let methodOrPropertyName = instance.declaration.name.text; let baseClass = classInstance.base; - while (baseClass) { - let baseMembers = baseClass.members; - if (baseMembers && baseMembers.has(methodOrPropertyName)) { - this.discoveredOverload = true; - break; + if (baseClass) { + let baseMember = baseClass.getMember(methodOrPropertyName); + if (baseMember) { + // note override discovery for virtual stub finalization + this.discoveredOverride = true; + // verify that this is a compatible override + let incompatibleOverride = true; + if (instance.isAny(CommonFlags.Get | CommonFlags.Set)) { + if (baseMember.kind == ElementKind.PropertyPrototype) { + let baseProperty = this.resolveProperty(baseMember, reportMode); + if (baseProperty) { + if (instance.is(CommonFlags.Get)) { + let baseGetter = baseProperty.getterInstance; + if (baseGetter && instance.signature.isAssignableTo(baseGetter.signature, true)) { + incompatibleOverride = false; + } + } else { + assert(instance.is(CommonFlags.Set)); + let baseSetter = baseProperty.setterInstance; + if (baseSetter && instance.signature.isAssignableTo(baseSetter.signature, true)) { + incompatibleOverride = false; + } + } + } + } + } else if (instance.is(CommonFlags.Constructor)) { + incompatibleOverride = false; + } else { + if (baseMember.kind == ElementKind.FunctionPrototype) { + // Possibly generic. Resolve with same type arguments to obtain the correct one. + let basePrototype = baseMember; + let baseFunction = this.resolveFunction(basePrototype, typeArguments, new Map(), ReportMode.Swallow); + if (baseFunction && instance.signature.isAssignableTo(baseFunction.signature, true)) { + incompatibleOverride = false; + } + } + } + if (incompatibleOverride) { + this.errorRelated( + DiagnosticCode.This_overload_signature_is_not_compatible_with_its_implementation_signature, + instance.identifierAndSignatureRange, baseMember.identifierAndSignatureRange + ); + } } - baseClass = baseClass.base; } } return instance; @@ -2957,57 +3001,59 @@ export class Resolver extends DiagnosticEmitter { ); } - /** Resolves reachable overloads of the given instance method. */ - resolveOverloads(instance: Function): Function[] | null { - let overloadPrototypes = instance.prototype.overloads; - if (!overloadPrototypes) return null; + /** Resolves reachable overrides of the given instance method. */ + resolveOverrides(instance: Function): Function[] | null { + let overridePrototypes = instance.prototype.overloads; + if (!overridePrototypes) return null; let parentClassInstance = assert(instance.getClassOrInterface()); - let overloads = new Set(); + let overrides = new Set(); - // A method's `overloads` property contains its unbound overload prototypes + // A method's `overrides` property contains its unbound override prototypes // so we first have to find the concrete classes it became bound to, obtain // their bound prototypes and make sure these are resolved. - for (let _values = Set_values(overloadPrototypes), i = 0, k = _values.length; i < k; ++i) { - let unboundOverloadPrototype = _values[i]; - assert(!unboundOverloadPrototype.isBound); - let unboundOverloadParent = unboundOverloadPrototype.parent; - let isProperty = unboundOverloadParent.kind == ElementKind.PropertyPrototype; + for (let _values = Set_values(overridePrototypes), i = 0, k = _values.length; i < k; ++i) { + let unboundOverridePrototype = _values[i]; + assert(!unboundOverridePrototype.isBound); + let unboundOverrideParent = unboundOverridePrototype.parent; + let isProperty = unboundOverrideParent.kind == ElementKind.PropertyPrototype; let classInstances: Map | null; if (isProperty) { - let propertyParent = (unboundOverloadParent).parent; + let propertyParent = (unboundOverrideParent).parent; assert(propertyParent.kind == ElementKind.ClassPrototype); classInstances = (propertyParent).instances; } else { - assert(unboundOverloadParent.kind == ElementKind.ClassPrototype); - classInstances = (unboundOverloadParent).instances; + assert(unboundOverrideParent.kind == ElementKind.ClassPrototype); + classInstances = (unboundOverrideParent).instances; } if (!classInstances) continue; for (let _values = Map_values(classInstances), j = 0, l = _values.length; j < l; ++j) { let classInstance = _values[j]; // Check if the parent class is a subtype of instance's class if (!classInstance.isAssignableTo(parentClassInstance)) continue; - let overloadInstance: Function | null; + let overrideInstance: Function | null = null; if (isProperty) { - let boundProperty = assert(classInstance.members!.get(unboundOverloadParent.name)); + let boundProperty = assert(classInstance.getMember(unboundOverrideParent.name)); assert(boundProperty.kind == ElementKind.PropertyPrototype); let boundPropertyInstance = this.resolveProperty(boundProperty); if (!boundPropertyInstance) continue; if (instance.is(CommonFlags.Get)) { - overloadInstance = boundPropertyInstance.getterInstance; + overrideInstance = boundPropertyInstance.getterInstance; } else { assert(instance.is(CommonFlags.Set)); - overloadInstance = boundPropertyInstance.setterInstance; + overrideInstance = boundPropertyInstance.setterInstance; } } else { - let boundPrototype = assert(classInstance.members!.get(unboundOverloadPrototype.name)); - assert(boundPrototype.kind == ElementKind.FunctionPrototype); - overloadInstance = this.resolveFunction(boundPrototype, instance.typeArguments); + let boundPrototype = classInstance.getMember(unboundOverridePrototype.name); + if (boundPrototype) { // might have errored earlier and wasn't added + assert(boundPrototype.kind == ElementKind.FunctionPrototype); + overrideInstance = this.resolveFunction(boundPrototype, instance.typeArguments); + } } - if (overloadInstance) overloads.add(overloadInstance); + if (overrideInstance) overrides.add(overrideInstance); } } - return Set_values(overloads); + return Set_values(overrides); } /** Currently resolving classes. */ @@ -3136,6 +3182,102 @@ export class Resolver extends DiagnosticEmitter { return instance; } + /** Checks whether an override's visibility is valid. */ + private checkOverrideVisibility( + /** Name to report. */ + name: string, + /** Overriding member. */ + thisMember: DeclaredElement, + /** Overriding class. */ + thisClass: Class, + /** Overridden member. */ + baseMember: DeclaredElement, + /** Overridden class. */ + baseClass: Class, + /** Report mode. */ + reportMode: ReportMode + ): bool { + let hasErrors = false; + if (thisMember.is(CommonFlags.Constructor)) { + assert(baseMember.is(CommonFlags.Constructor)); + if (baseMember.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, + thisMember.identifierNode.range, baseMember.identifierNode.range, + baseClass.internalName + ); + } + hasErrors = true; + } + } else if (thisMember.is(CommonFlags.Private)) { + if (baseMember.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Types_have_separate_declarations_of_a_private_property_0, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name + ); + } + hasErrors = true; + } else { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name, thisClass.internalName, baseClass.internalName + ); + } + hasErrors = true; + } + } else if (thisMember.is(CommonFlags.Protected)) { + if (baseMember.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + hasErrors = true; + } else if (baseMember.isPublic) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name, thisClass.internalName, baseClass.internalName + ); + } + hasErrors = true; + } else { + assert(baseMember.is(CommonFlags.Protected)); + } + } else if (thisMember.isPublic) { + if (baseMember.is(CommonFlags.Private)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + hasErrors = true; + } else if (baseMember.is(CommonFlags.Protected)) { + if (reportMode == ReportMode.Report) { + this.errorRelated( + DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + name, baseClass.internalName, thisClass.internalName + ); + } + hasErrors = true; + } else { + assert(baseMember.isPublic); + } + } + return !hasErrors; + } + /** Finishes resolving the specified class. */ private finishResolveClass( /** Class to finish resolving. */ @@ -3148,8 +3290,7 @@ export class Resolver extends DiagnosticEmitter { let pendingClasses = this.resolveClassPending; let unimplemented = new Map(); - - // Alias and pre-check implemented interface members + // Alias implemented interface members let interfaces = instance.interfaces; if (interfaces) { for (let _values = Set_values(interfaces), i = 0, k = _values.length; i < k; ++i) { @@ -3159,28 +3300,19 @@ export class Resolver extends DiagnosticEmitter { if (ifaceMembers) { for (let _keys = Map_keys(ifaceMembers), i = 0, k = _keys.length; i < k; ++i) { let memberName = unchecked(_keys[i]); - let baseMember = assert(ifaceMembers.get(memberName)); - if (members.has(memberName)) { - let thisMember = assert(members.get(memberName)); - if (!thisMember.isCompatibleOverride(baseMember)) { - this.errorRelated( - DiagnosticCode.This_overload_signature_is_not_compatible_with_its_implementation_signature, - thisMember.identifierAndSignatureRange, baseMember.identifierAndSignatureRange - ); - continue; - } - if (!this.checkOverloadVisibility(memberName, thisMember, instance, baseMember, iface, reportMode)) { - continue; - } + let ifaceMember = assert(ifaceMembers.get(memberName)); + let existingMember = instance.getMember(memberName); + if (existingMember && !this.checkOverrideVisibility(memberName, existingMember, instance, ifaceMember, iface, reportMode)) { + continue; // keep previous } - members.set(memberName, baseMember); - unimplemented.set(memberName, baseMember); + members.set(memberName, ifaceMember); + unimplemented.set(memberName, ifaceMember); } } } } - // Alias and pre-check implemented / overridden base members + // Alias base members let memoryOffset: u32 = 0; let base = instance.base; if (base) { @@ -3191,18 +3323,9 @@ export class Resolver extends DiagnosticEmitter { for (let _keys = Map_keys(baseMembers), i = 0, k = _keys.length; i < k; ++i) { let memberName = unchecked(_keys[i]); let baseMember = assert(baseMembers.get(memberName)); - if (members.has(memberName)) { - let thisMember = assert(members.get(memberName)); - if (!thisMember.isCompatibleOverride(baseMember)) { - this.errorRelated( - DiagnosticCode.This_overload_signature_is_not_compatible_with_its_implementation_signature, - thisMember.identifierAndSignatureRange, baseMember.identifierAndSignatureRange - ); - continue; - } - if (!this.checkOverloadVisibility(memberName, thisMember, instance, baseMember, base, reportMode)) { - continue; - } + let existingMember = instance.getMember(memberName); + if (existingMember && !this.checkOverrideVisibility(memberName, existingMember, instance, baseMember, base, reportMode)) { + continue; // keep previous } members.set(memberName, baseMember); if (baseMember.is(CommonFlags.Abstract)) { @@ -3224,6 +3347,10 @@ export class Resolver extends DiagnosticEmitter { for (let _values = Map_values(instanceMemberPrototypes), i = 0, k = _values.length; i < k; ++i) { let member = unchecked(_values[i]); let memberName = member.name; + if (base) { + let baseMember = base.getMember(memberName); + if (baseMember) this.checkOverrideVisibility(memberName, member, instance, baseMember, base, reportMode); + } switch (member.kind) { case ElementKind.FunctionPrototype: { let boundPrototype = (member).toBound(instance); @@ -3232,16 +3359,35 @@ export class Resolver extends DiagnosticEmitter { } case ElementKind.PropertyPrototype: { let boundPrototype = (member).toBound(instance); - if (boundPrototype.isField) { // resolve fully and lay out + if (boundPrototype.isField) { // resolve and lay out let boundInstance = this.resolveProperty(boundPrototype, reportMode); if (boundInstance) { let fieldType = boundInstance.type; assert(isPowerOf2(fieldType.byteSize)); - let mask = fieldType.byteSize - 1; - if (memoryOffset & mask) memoryOffset = (memoryOffset | mask) + 1; - boundInstance.memoryOffset = memoryOffset; - memoryOffset += fieldType.byteSize; - instance.add(boundInstance.name, boundInstance); // reports + let needsLayout = true; + if (base) { + let existingMember = base.getMember(boundPrototype.name); + if (existingMember && existingMember.kind == ElementKind.PropertyPrototype) { + let existingPrototype = existingMember; + let existingProperty = this.resolveProperty(existingPrototype, reportMode); + if (existingProperty && existingProperty.isField) { + boundInstance.memoryOffset = existingProperty.memoryOffset; + needsLayout = false; + } + } + } + if (needsLayout) { + let mask = fieldType.byteSize - 1; + if (memoryOffset & mask) memoryOffset = (memoryOffset | mask) + 1; + boundInstance.memoryOffset = memoryOffset; + memoryOffset += fieldType.byteSize; + } + boundPrototype.instance = boundInstance; + instance.add(boundPrototype.name, boundPrototype); // reports + // field materializes here, so check for supported type early + // (other checks are performed once an element is compiled) + let typeNode = assert(boundPrototype.fieldDeclaration).type; + if (typeNode) this.program.checkTypeSupported(fieldType, typeNode); } } else { instance.add(boundPrototype.name, boundPrototype); // reports @@ -3406,84 +3552,6 @@ export class Resolver extends DiagnosticEmitter { } } - /** Checks whether visibility of an overload is valid. */ - private checkOverloadVisibility( - /** Name of the property. */ - name: string, - /** Overloading element. */ - thisElement: DeclaredElement, - /** Overloading class. */ - thisClass: Class, - /** Overloaded element. */ - baseElement: DeclaredElement, - /** Overloaded class. */ - baseClass: Class, - /** Report mode. */ - reportMode: ReportMode - ): bool { - if (thisElement.is(CommonFlags.Private)) { - if (reportMode == ReportMode.Report) { - if (baseElement.is(CommonFlags.Private)) { - this.errorRelated( - DiagnosticCode.Types_have_separate_declarations_of_a_private_property_0, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name - ); - } else { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name, thisClass.internalName, baseClass.internalName - ); - } - } - return false; - } else if (thisElement.is(CommonFlags.Protected)) { - if (baseElement.is(CommonFlags.Private)) { - if (reportMode == ReportMode.Report) { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name, baseClass.internalName, thisClass.internalName - ); - } - return false; - } else if (baseElement.isPublic) { - if (reportMode == ReportMode.Report) { - this.errorRelated( - DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name, thisClass.internalName, baseClass.internalName - ); - } - return false; - } - assert(baseElement.is(CommonFlags.Protected)); - } else if (thisElement.isPublic) { - if (baseElement.is(CommonFlags.Private)) { - if (reportMode == ReportMode.Report) { - this.errorRelated( - DiagnosticCode.Property_0_is_private_in_type_1_but_not_in_type_2, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name, baseClass.internalName, thisClass.internalName - ); - } - return false; - } else if (baseElement.is(CommonFlags.Protected)) { - if (reportMode == ReportMode.Report) { - this.errorRelated( - DiagnosticCode.Property_0_is_protected_in_type_1_but_public_in_type_2, - thisElement.identifierNode.range, baseElement.identifierNode.range, - name, baseClass.internalName, thisClass.internalName - ); - } - return false; - } - assert(baseElement.isPublic); - } - return true; - } - /** Resolves a class prototype by first resolving the specified type arguments. */ resolveClassInclTypeArguments( /** The prototype of the class. */ diff --git a/src/types.ts b/src/types.ts index f9361b2862..a0074edc70 100644 --- a/src/types.ts +++ b/src/types.ts @@ -530,8 +530,6 @@ export class Type { } else { return false; } - // Interfaces can only extend interfaces - if (thisClass.isInterface && !baseClass.isInterface) return false; return true; } diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index c8569c1803..0994a391d9 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32 i32) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -25,11 +25,15 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/assert-nonnull.debug.wat b/tests/compiler/assert-nonnull.debug.wat index 4c508adcf3..2f8dc9a77b 100644 --- a/tests/compiler/assert-nonnull.debug.wat +++ b/tests/compiler/assert-nonnull.debug.wat @@ -48,22 +48,26 @@ unreachable end ) - (func $assert-nonnull/testObj (type $i32_=>_i32) (param $foo i32) (result i32) - (local $1 i32) - local.get $foo - local.tee $1 - if (result i32) - local.get $1 - else - i32.const 32 - i32.const 96 - i32.const 11 - i32.const 10 - call $~lib/builtins/abort - unreachable - end + (func $assert-nonnull/Foo#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $assert-nonnull/testFn (type $i32_=>_i32) (param $fn i32) (result i32) i32.const 0 global.set $~argumentsLength @@ -71,11 +75,15 @@ i32.load $0 call_indirect $0 (type $none_=>_i32) ) + (func $assert-nonnull/Foo#get:baz (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $assert-nonnull/testObjFn (type $i32_=>_i32) (param $foo i32) (result i32) i32.const 0 global.set $~argumentsLength local.get $foo - i32.load $0 offset=4 + call $assert-nonnull/Foo#get:baz i32.load $0 call_indirect $0 (type $none_=>_i32) ) @@ -92,6 +100,42 @@ unreachable end ) + (func $assert-nonnull/testObj (type $i32_=>_i32) (param $foo i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $foo + local.tee $1 + if (result i32) + local.get $1 + else + i32.const 32 + i32.const 96 + i32.const 11 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 + local.get $2 + call $assert-nonnull/Foo#get:bar + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) (func $assert-nonnull/testArr (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) (local $2 i32) @@ -135,7 +179,7 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -143,8 +187,8 @@ i64.const 0 i64.store $0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 offset=8 + i64.const 0 + i64.store $0 offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $foo @@ -162,12 +206,12 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store $0 + i32.store $0 offset=4 local.get $4 i32.const 0 call $~lib/array/Array#__get local.tee $2 - i32.store $0 offset=4 + i32.store $0 offset=8 local.get $2 if (result i32) local.get $2 @@ -179,9 +223,14 @@ call $~lib/builtins/abort unreachable end - i32.load $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 + local.get $4 + call $assert-nonnull/Foo#get:bar local.tee $3 - i32.store $0 offset=8 + i32.store $0 offset=12 local.get $3 if (result i32) local.get $3 @@ -195,7 +244,7 @@ end local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -206,7 +255,7 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -214,8 +263,8 @@ i64.const 0 i64.store $0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 offset=8 + i64.const 0 + i64.store $0 offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $foo @@ -233,12 +282,12 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store $0 + i32.store $0 offset=4 local.get $4 i32.const 0 call $~lib/array/Array#__get local.tee $2 - i32.store $0 offset=4 + i32.store $0 offset=8 local.get $2 if (result i32) local.get $2 @@ -250,9 +299,14 @@ call $~lib/builtins/abort unreachable end - i32.load $0 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 + local.get $4 + call $assert-nonnull/Foo#get:bar local.tee $3 - i32.store $0 offset=8 + i32.store $0 offset=12 local.get $3 if (result i32) local.get $3 @@ -266,7 +320,7 @@ end local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -284,7 +338,7 @@ i32.store $0 global.get $~lib/memory/__stack_pointer local.get $foo - i32.load $0 + call $assert-nonnull/Foo#get:bar local.tee $1 i32.store $0 local.get $1 @@ -318,7 +372,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 160 @@ -330,7 +384,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -374,7 +428,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 160 @@ -386,7 +440,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -533,7 +587,7 @@ i32.const 0 global.set $~argumentsLength local.get $foo - i32.load $0 offset=4 + call $assert-nonnull/Foo#get:baz i32.load $0 call_indirect $0 (type $none_=>_i32) local.tee $1 diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 56cd327e5e..0615c5a72b 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -109,42 +109,65 @@ local.get $0 ) (func $export:assert-nonnull/testObj (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - if - i32.const 34192 - i32.const 34240 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 - local.get $0 - i32.eqz - if - i32.const 1056 - i32.const 1120 - i32.const 11 - i32.const 10 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + i32.const 1056 + i32.const 1120 + i32.const 11 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $0 + i32.load $0 + local.set $0 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $0 - i32.load $0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 34192 + i32.const 34240 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $export:assert-nonnull/testProp (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) @@ -383,7 +406,7 @@ local.get $0 i32.store $0 local.get $1 - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -395,32 +418,35 @@ i64.const 0 i64.store $0 local.get $1 - i32.const 0 - i32.store $0 offset=8 + i64.const 0 + i64.store $0 offset=8 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store $0 + i32.store $0 offset=4 local.get $1 local.get $0 call $~lib/array/Array#__get local.tee $0 - i32.store $0 offset=4 + i32.store $0 offset=8 local.get $0 i32.eqz br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 local.get $1 local.get $0 i32.load $0 local.tee $0 - i32.store $0 offset=8 + i32.store $0 offset=12 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -461,7 +487,7 @@ local.get $0 i32.store $0 local.get $1 - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -473,32 +499,35 @@ i64.const 0 i64.store $0 local.get $1 - i32.const 0 - i32.store $0 offset=8 + i64.const 0 + i64.store $0 offset=8 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store $0 + i32.store $0 offset=4 local.get $1 local.get $0 call $~lib/array/Array#__get local.tee $0 - i32.store $0 offset=4 + i32.store $0 offset=8 local.get $0 i32.eqz br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 local.get $1 local.get $0 i32.load $0 local.tee $0 - i32.store $0 offset=8 + i32.store $0 offset=12 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index a070752e06..5e5884f155 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -138,20 +138,24 @@ (func $bindings/esm/getMaxUnsigned64 (type $none_=>_i64) (result i64) global.get $~lib/builtins/u64.MAX_VALUE ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -163,9 +167,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -173,7 +181,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -225,7 +233,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -234,11 +242,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -257,7 +269,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -279,7 +291,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -300,6 +312,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -323,12 +343,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -347,7 +367,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -371,7 +391,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -450,36 +470,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -504,7 +540,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -604,10 +640,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -698,7 +734,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -751,7 +787,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -773,7 +809,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -781,7 +817,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -808,7 +844,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -816,7 +852,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -831,7 +867,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1026,7 +1062,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1136,7 +1172,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1390,7 +1426,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1413,7 +1449,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1853,7 +1889,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2030,7 +2066,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2100,7 +2136,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2112,13 +2148,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2162,7 +2198,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2201,14 +2237,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2267,7 +2303,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2354,41 +2390,49 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 + ) + (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) + (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Int16Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -2401,7 +2445,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -2411,7 +2455,7 @@ (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -2424,7 +2468,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -2435,7 +2479,7 @@ (func $~lib/typedarray/Float32Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -2448,7 +2492,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -2459,7 +2503,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -2523,39 +2567,47 @@ (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 528 @@ -2566,7 +2618,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2577,6 +2629,14 @@ drop local.get $value ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2588,7 +2648,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2605,7 +2665,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2613,7 +2673,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2634,7 +2694,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2656,7 +2716,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2720,7 +2780,7 @@ ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2733,7 +2793,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2765,98 +2825,106 @@ local.get $value call $~lib/array/Array#__uset ) - (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=2 ) - (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=8 ) - (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=16 ) - (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=18 ) - (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=24 ) - (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=32 ) - (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=36 ) - (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=40 ) - (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 offset=44 ) - (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=48 ) - (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=56 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=60 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=64 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $bindings/esm/PlainObject#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 + ) + (func $bindings/esm/PlainObject#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=2 + ) (func $bindings/esm/newInternref (type $none_=>_i32) (result i32) i32.const 0 call $bindings/esm/NonPlainObject#constructor @@ -3029,9 +3097,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3055,11 +3127,15 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3100,6 +3176,18 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -3108,11 +3196,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -3141,7 +3229,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -4091,16 +4179,16 @@ i32.store $0 local.get $ref local.get $a - i32.load8_s $0 + call $bindings/esm/PlainObject#get:a local.get $b - i32.load8_s $0 + call $bindings/esm/PlainObject#get:a i32.add call $bindings/esm/PlainObject#set:a local.get $ref local.get $a - i32.load16_s $0 offset=2 + call $bindings/esm/PlainObject#get:b local.get $b - i32.load16_s $0 offset=2 + call $bindings/esm/PlainObject#get:b i32.add call $bindings/esm/PlainObject#set:b local.get $ref diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 3d3b285e03..6ef202959d 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2545,12 +2545,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store $0 - local.get $2 + local.get $4 block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) local.get $0 + local.tee $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2560,24 +2561,24 @@ i32.shr_u i32.add local.set $5 - local.get $2 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2204 i32.lt_s - br_if $folding-inner00 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store $0 - local.get $2 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer local.tee $4 @@ -2587,27 +2588,27 @@ global.get $~lib/memory/__stack_pointer i32.const 2204 i32.lt_s - br_if $folding-inner00 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $2 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 end - local.get $2 + local.get $0 i32.const 0 i32.store $0 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=8 local.get $5 @@ -2630,19 +2631,19 @@ call $~lib/rt/itcms/__new local.tee $5 i32.store $0 offset=4 - local.get $2 + local.get $0 local.get $5 i32.store $0 local.get $5 if - local.get $2 + local.get $0 local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $0 local.get $5 i32.store $0 offset=4 - local.get $2 + local.get $0 local.get $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -2650,29 +2651,29 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $2 + local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end - local.tee $2 + local.tee $0 i32.store $0 loop $for-loop|0 local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2685,9 +2686,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $3 local.get $0 + local.get $3 + local.get $2 i32.load $0 offset=4 local.get $3 i32.const 1 @@ -2713,7 +2714,7 @@ i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2733,7 +2734,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 local.get $4 local.get $1 i32.load $0 offset=4 @@ -2759,7 +2760,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 return end i32.const 34992 diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index 911d1d366a..54e1818fb8 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -70,14 +70,14 @@ (export "_start" (func $~start)) (export "takesNonPlainObject" (func $export:bindings/noExportRuntime/takesNonPlainObject)) (export "takesFunction" (func $export:bindings/noExportRuntime/takesFunction)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -89,9 +89,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -99,7 +103,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -151,7 +155,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -160,11 +164,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -183,7 +191,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -205,7 +213,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -226,6 +234,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -249,12 +265,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -273,7 +289,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -297,7 +313,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -376,36 +392,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -430,7 +462,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -530,10 +562,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -624,7 +656,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -677,7 +709,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -699,7 +731,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -707,7 +739,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -734,7 +766,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -742,7 +774,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -757,7 +789,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -952,7 +984,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1062,7 +1094,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1316,7 +1348,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1339,7 +1371,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1779,7 +1811,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1956,7 +1988,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2026,7 +2058,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2038,13 +2070,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2088,7 +2120,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2127,14 +2159,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2257,23 +2289,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $start:bindings/noExportRuntime (type $none_=>_none) @@ -2394,11 +2426,15 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2407,6 +2443,18 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2415,11 +2463,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -2448,7 +2496,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 1ae937ff51..4299467bac 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1553,6 +1553,61 @@ memory.fill $0 local.get $1 ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $bindings/noExportRuntime/takesReturnsBasic (type $i32_=>_i32) (param $0 i32) (result i32) global.get $bindings/noExportRuntime/isBasic ) @@ -1647,8 +1702,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~started if return @@ -1732,7 +1785,7 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1755,7 +1808,7 @@ end local.get $0 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 i32.const 0 i32.store $0 offset=4 @@ -1766,63 +1819,13 @@ i32.const 0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store $0 offset=4 local.get $0 - local.get $1 - i32.store $0 - local.get $1 - if - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $4 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $4 - i32.const 3 - i32.eq - i32.and - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=4 local.get $0 i32.const 0 @@ -1831,7 +1834,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index bbbd34a300..584c63b770 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -141,20 +141,24 @@ (func $bindings/esm/getMaxUnsigned64 (type $none_=>_i64) (result i64) global.get $~lib/builtins/u64.MAX_VALUE ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -166,9 +170,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -176,7 +184,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -228,7 +236,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -237,11 +245,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -260,7 +272,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -282,7 +294,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -303,6 +315,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -326,12 +346,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -350,7 +370,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -374,7 +394,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -453,36 +473,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -507,7 +543,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -607,10 +643,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -701,7 +737,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -754,7 +790,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -776,7 +812,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -784,7 +820,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -811,7 +847,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -819,7 +855,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -834,7 +870,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1029,7 +1065,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1139,7 +1175,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1393,7 +1429,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1416,7 +1452,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1856,7 +1892,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2033,7 +2069,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2103,7 +2139,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2115,13 +2151,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2165,7 +2201,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2204,14 +2240,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2270,7 +2306,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2357,41 +2393,49 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 + ) + (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) + (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Int16Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -2404,7 +2448,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -2414,7 +2458,7 @@ (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -2427,7 +2471,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -2438,7 +2482,7 @@ (func $~lib/typedarray/Float32Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -2451,7 +2495,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -2462,7 +2506,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -2526,39 +2570,47 @@ (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 528 @@ -2569,7 +2621,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2580,6 +2632,14 @@ drop local.get $value ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2591,7 +2651,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2608,7 +2668,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2616,7 +2676,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2637,7 +2697,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2659,7 +2719,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2723,7 +2783,7 @@ ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2736,7 +2796,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2768,98 +2828,106 @@ local.get $value call $~lib/array/Array#__uset ) - (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=2 ) - (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=8 ) - (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=16 ) - (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=18 ) - (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=24 ) - (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=32 ) - (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=36 ) - (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=40 ) - (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 offset=44 ) - (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=48 ) - (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=56 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=60 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=64 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $bindings/esm/PlainObject#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 + ) + (func $bindings/esm/PlainObject#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=2 + ) (func $bindings/esm/newInternref (type $none_=>_i32) (result i32) i32.const 0 call $bindings/esm/NonPlainObject#constructor @@ -3032,9 +3100,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3058,11 +3130,15 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3103,6 +3179,18 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -3111,11 +3199,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -3144,7 +3232,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -4094,16 +4182,16 @@ i32.store $0 local.get $ref local.get $a - i32.load8_s $0 + call $bindings/esm/PlainObject#get:a local.get $b - i32.load8_s $0 + call $bindings/esm/PlainObject#get:a i32.add call $bindings/esm/PlainObject#set:a local.get $ref local.get $a - i32.load16_s $0 offset=2 + call $bindings/esm/PlainObject#get:b local.get $b - i32.load16_s $0 offset=2 + call $bindings/esm/PlainObject#get:b i32.add call $bindings/esm/PlainObject#set:b local.get $ref diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index d2a00c9146..b4a9c2a1fb 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2545,12 +2545,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store $0 - local.get $2 + local.get $4 block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) local.get $0 + local.tee $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2560,24 +2561,24 @@ i32.shr_u i32.add local.set $5 - local.get $2 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2204 i32.lt_s - br_if $folding-inner00 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store $0 - local.get $2 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer local.tee $4 @@ -2587,27 +2588,27 @@ global.get $~lib/memory/__stack_pointer i32.const 2204 i32.lt_s - br_if $folding-inner00 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $2 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 end - local.get $2 + local.get $0 i32.const 0 i32.store $0 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=8 local.get $5 @@ -2630,19 +2631,19 @@ call $~lib/rt/itcms/__new local.tee $5 i32.store $0 offset=4 - local.get $2 + local.get $0 local.get $5 i32.store $0 local.get $5 if - local.get $2 + local.get $0 local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $0 local.get $5 i32.store $0 offset=4 - local.get $2 + local.get $0 local.get $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -2650,29 +2651,29 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $2 + local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end - local.tee $2 + local.tee $0 i32.store $0 loop $for-loop|0 local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2685,9 +2686,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $3 local.get $0 + local.get $3 + local.get $2 i32.load $0 offset=4 local.get $3 i32.const 1 @@ -2713,7 +2714,7 @@ i32.lt_s if local.get $3 - local.get $0 + local.get $2 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -2733,7 +2734,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 local.get $4 local.get $1 i32.load $0 offset=4 @@ -2759,7 +2760,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 return end i32.const 34992 diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index 5e002d673b..cadd894a5c 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -105,11 +105,15 @@ (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name (type $i32_=>_i32) (param $this i32) (result i32) i32.const 32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -3209,11 +3213,11 @@ local.set $48 i32.const 0 local.set $49 - i32.const 24 + i32.const 46 local.set $50 - i32.const 25 + i32.const 47 local.set $51 - i32.const 25 + i32.const 47 local.set $52 i32.const 256 local.set $63 @@ -3258,7 +3262,7 @@ unreachable end local.get $50 - i32.const 24 + i32.const 46 i32.eq i32.eqz if diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 2f67c23141..fe25052d4b 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -735,9 +735,9 @@ i32.const 5 f64.const 0 f64.const 0 - f64.const 24 - f64.const 25 - f64.const 25 + f64.const 46 + f64.const 47 + f64.const 47 call $~lib/builtins/trace global.get $~lib/memory/__stack_pointer local.tee $0 diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 5337413a78..b9d4025c83 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -42,14 +42,18 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/A#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -61,9 +65,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -71,7 +79,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -123,7 +131,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -132,11 +140,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -155,7 +167,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -177,7 +189,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -198,6 +210,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -221,12 +241,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -245,7 +265,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -269,7 +289,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -348,36 +368,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -402,7 +438,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -502,10 +538,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -596,7 +632,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -649,7 +685,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -671,7 +707,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -679,7 +715,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -706,7 +742,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -714,7 +750,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -729,7 +765,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -924,7 +960,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1034,7 +1070,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1288,7 +1324,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1311,7 +1347,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1751,7 +1787,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1928,7 +1964,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1998,7 +2034,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2010,13 +2046,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2060,7 +2096,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2099,14 +2135,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2161,14 +2197,18 @@ memory.fill $0 local.get $ptr ) - (func $call-super/A#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $call-super/B#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/B#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $call-super/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $call-super/test1 (type $none_=>_none) @@ -2187,7 +2227,7 @@ local.tee $b i32.store $0 local.get $b - i32.load $0 + call $call-super/A#get:a i32.const 1 i32.eq i32.eqz @@ -2200,7 +2240,7 @@ unreachable end local.get $b - i32.load $0 offset=4 + call $call-super/B#get:b i32.const 2 i32.eq i32.eqz @@ -2217,14 +2257,22 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/C#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/C#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $call-super/D#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/C#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $call-super/D#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $call-super/D#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $call-super/test2 (type $none_=>_none) @@ -2243,7 +2291,7 @@ local.tee $d i32.store $0 local.get $d - i32.load $0 + call $call-super/C#get:a i32.const 1 i32.eq i32.eqz @@ -2256,7 +2304,7 @@ unreachable end local.get $d - i32.load $0 offset=4 + call $call-super/D#get:b i32.const 2 i32.eq i32.eqz @@ -2273,16 +2321,24 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/E#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/E#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $call-super/E#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $call-super/F#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/F#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $call-super/F#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $call-super/test3 (type $none_=>_none) (local $f i32) global.get $~lib/memory/__stack_pointer @@ -2299,7 +2355,7 @@ local.tee $f i32.store $0 local.get $f - i32.load $0 + call $call-super/E#get:a i32.const 1 i32.eq i32.eqz @@ -2312,7 +2368,7 @@ unreachable end local.get $f - i32.load $0 offset=4 + call $call-super/F#get:b i32.const 2 i32.eq i32.eqz @@ -2329,16 +2385,24 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/G#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/G#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $call-super/H#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/H#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $call-super/G#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $call-super/H#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $call-super/test4 (type $none_=>_none) (local $h i32) global.get $~lib/memory/__stack_pointer @@ -2355,7 +2419,7 @@ local.tee $h i32.store $0 local.get $h - i32.load $0 + call $call-super/G#get:a i32.const 1 i32.eq i32.eqz @@ -2368,7 +2432,7 @@ unreachable end local.get $h - i32.load $0 offset=4 + call $call-super/H#get:b i32.const 2 i32.eq i32.eqz @@ -2385,16 +2449,24 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/I#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/I#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $call-super/J#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $call-super/J#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $call-super/I#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $call-super/J#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $call-super/test5 (type $none_=>_none) (local $h i32) global.get $~lib/memory/__stack_pointer @@ -2411,7 +2483,7 @@ local.tee $h i32.store $0 local.get $h - i32.load $0 + call $call-super/I#get:a i32.const 1 i32.eq i32.eqz @@ -2424,7 +2496,7 @@ unreachable end local.get $h - i32.load $0 offset=4 + call $call-super/J#get:b i32.const 2 i32.eq i32.eqz @@ -2577,7 +2649,7 @@ i32.const 1 call $call-super/A#set:a local.get $this - i32.load $0 + call $call-super/A#get:a i32.const 1 i32.eq i32.eqz @@ -2626,7 +2698,7 @@ local.tee $this i32.store $0 local.get $this - i32.load $0 + call $call-super/A#get:a i32.const 1 i32.eq i32.eqz @@ -2639,7 +2711,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $call-super/B#get:b i32.const 2 i32.eq i32.eqz @@ -2719,7 +2791,7 @@ local.tee $this i32.store $0 local.get $this - i32.load $0 + call $call-super/C#get:a i32.const 1 i32.eq i32.eqz @@ -2732,7 +2804,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $call-super/D#get:b i32.const 2 i32.eq i32.eqz @@ -2776,7 +2848,7 @@ i32.const 1 call $call-super/E#set:a local.get $this - i32.load $0 + call $call-super/E#get:a i32.const 1 i32.eq i32.eqz diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 548011094c..ccbea08aaa 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1726,123 +1726,123 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner01 - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner01 + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store $0 - local.get $1 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner01 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 i32.const 8 - i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner01 - global.get $~lib/memory/__stack_pointer + end + local.get $0 + i32.const 1 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 1 + i32.ne + if i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - local.get $0 - i32.const 1 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 - i32.store $0 - local.get $0 - i32.const 2 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load $0 offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.store $0 + local.get $0 + i32.const 2 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load $0 offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner02 global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -1854,7 +1854,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1873,7 +1873,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -1942,7 +1942,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -1954,7 +1954,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1973,7 +1973,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner01 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 diff --git a/tests/compiler/class-extends.debug.wat b/tests/compiler/class-extends.debug.wat index 718191e7ce..f248e185fb 100644 --- a/tests/compiler/class-extends.debug.wat +++ b/tests/compiler/class-extends.debug.wat @@ -1,4 +1,5 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) @@ -12,22 +13,30 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) - (func $class-extends/A#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $class-extends/A#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class-extends/B#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=4 + ) + (func $class-extends/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $class-extends/B#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $class-extends/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=4 ) (func $class-extends/test (type $i32_=>_none) (param $b i32) local.get $b - i32.load $0 + call $class-extends/A#get:a drop local.get $b - i32.load16_s $0 offset=4 + call $class-extends/B#get:b drop local.get $b i32.const 2 diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index 40c7338e7a..18da9b976a 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -49,14 +49,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -68,9 +68,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -78,7 +82,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -130,7 +134,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -139,11 +143,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -162,7 +170,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -184,7 +192,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -205,6 +213,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -228,12 +244,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -252,7 +268,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -276,7 +292,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -355,36 +371,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -409,7 +441,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -509,10 +541,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -603,7 +635,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -656,7 +688,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -678,7 +710,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -686,7 +718,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -713,7 +745,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -721,7 +753,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -736,7 +768,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -931,7 +963,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1041,7 +1073,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1295,7 +1327,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1318,7 +1350,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1758,7 +1790,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1935,7 +1967,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2005,7 +2037,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2017,13 +2049,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2067,7 +2099,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2106,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 80ec41163f..1ce5ffdee7 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -55,14 +55,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -74,9 +74,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -84,7 +88,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -136,7 +140,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -145,11 +149,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -168,7 +176,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -190,7 +198,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -211,6 +219,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -234,12 +250,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -258,7 +274,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -282,7 +298,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -361,36 +377,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -415,7 +447,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -515,10 +547,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -609,7 +641,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -662,7 +694,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -684,7 +716,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -692,7 +724,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -719,7 +751,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -727,7 +759,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -742,7 +774,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -937,7 +969,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1047,7 +1079,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1301,7 +1333,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1324,7 +1356,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1764,7 +1796,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1941,7 +1973,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2011,7 +2043,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2023,13 +2055,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2073,7 +2105,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2112,14 +2144,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2177,11 +2209,15 @@ (func $class-overloading-cast/A#foo (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) i32.const 432 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 3b0f33101d..87ac8fdb3c 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -59,14 +59,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -78,9 +78,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -88,7 +92,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -140,7 +144,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -149,11 +153,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -172,7 +180,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -194,7 +202,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -215,6 +223,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -238,12 +254,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -262,7 +278,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -286,7 +302,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -365,36 +381,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -419,7 +451,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -519,10 +551,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -613,7 +645,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -666,7 +698,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -688,7 +720,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -696,7 +728,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -723,7 +755,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -731,7 +763,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -746,7 +778,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -941,7 +973,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1051,7 +1083,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1305,7 +1337,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1328,7 +1360,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1768,7 +1800,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1945,7 +1977,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2015,7 +2047,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2027,13 +2059,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2077,7 +2109,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2116,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2182,11 +2214,15 @@ i32.const 464 global.set $class-overloading/which ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index 240793a0b9..f0ee09cb4d 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -95,19 +95,31 @@ f32.convert_i32_s f32.add ) - (func $class/Animal#set:one (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $class/Animal#get:one (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class/Animal#get:two (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=4 + ) + (func $class/Animal#get:three (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 offset=6 + ) + (func $class/Animal#set:one (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $class/Animal#set:two (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $class/Animal#set:two (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=4 ) - (func $class/Animal#set:three (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $class/Animal#set:three (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=6 ) (func $class/test (type $i32_=>_i32) (param $animal i32) (result i32) @@ -124,13 +136,13 @@ call $class/Animal#instanceSub drop local.get $animal - i32.load $0 + call $class/Animal#get:one drop local.get $animal - i32.load16_s $0 offset=4 + call $class/Animal#get:two drop local.get $animal - i32.load8_s $0 offset=6 + call $class/Animal#get:three drop local.get $animal i32.const 0 @@ -155,14 +167,14 @@ local.set $cls local.get $cls ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -174,9 +186,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -184,7 +200,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -236,7 +252,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -245,11 +261,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -268,7 +288,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -290,7 +310,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -311,6 +331,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -334,12 +362,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -358,7 +386,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -382,7 +410,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -461,36 +489,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -515,7 +559,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -615,10 +659,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -709,7 +753,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -762,7 +806,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -784,7 +828,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -792,7 +836,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -819,7 +863,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -827,7 +871,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -842,7 +886,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1037,7 +1081,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1147,7 +1191,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1401,7 +1445,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1424,7 +1468,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1864,7 +1908,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2041,7 +2085,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2111,7 +2155,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2123,13 +2167,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2173,7 +2217,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2212,14 +2256,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2342,39 +2386,39 @@ end end ) - (func $class/GenericInitializer#set:foo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) + (func $class/GenericInitializer#set:foo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 + local.get $this + local.get $value + i32.const 0 + call $~lib/rt/itcms/__link + ) (func $class/testGenericInitializer (type $none_=>_none) i32.const 0 call $class/GenericInitializer#constructor @@ -2414,11 +2458,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2497,6 +2545,44 @@ unreachable end ) + (func $class/GenericInitializer#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $class/GenericInitializer#set:foo + 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/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -2587,39 +2673,6 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $class/GenericInitializer#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - call $class/GenericInitializer#set:foo - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $export:class/test (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 8a0f361224..4fca7e3b95 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -1509,12 +1509,67 @@ memory.fill $0 local.get $1 ) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $class/testGenericInitializer (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1524,13 +1579,13 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1541,25 +1596,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 - i32.store $0 - local.get $1 + call $~lib/array/Array#set:buffer + local.get $0 i32.const 0 i32.store $0 offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -1568,39 +1623,30 @@ call $~lib/rt/itcms/__new local.tee $2 i32.store $0 offset=4 - local.get $1 - local.get $2 - i32.store $0 + local.get $0 local.get $2 - if - local.get $1 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $1 + call $~lib/array/Array#set:buffer + local.get $0 local.get $2 i32.store $0 offset=4 - local.get $1 + local.get $0 i32.const 32 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store $0 offset=4 local.get $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + local.get $0 + call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return @@ -1748,53 +1794,4 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 98363df977..2698f233d6 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -54,14 +54,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -73,9 +73,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -83,7 +87,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -135,7 +139,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -144,11 +148,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -167,7 +175,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -189,7 +197,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -210,6 +218,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -233,12 +249,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -257,7 +273,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -281,7 +297,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -360,36 +376,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -414,7 +446,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -514,10 +546,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -608,7 +640,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -661,7 +693,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -683,7 +715,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -691,7 +723,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -718,7 +750,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -726,7 +758,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -741,7 +773,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -936,7 +968,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1046,7 +1078,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1300,7 +1332,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1323,7 +1355,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1763,7 +1795,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1940,7 +1972,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2010,7 +2042,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2022,13 +2054,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2072,7 +2104,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2111,14 +2143,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2173,142 +2205,61 @@ memory.fill $0 local.get $ptr ) - (func $constructor/EmptyCtorWithFieldInit#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/EmptyCtorWithFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $constructor/EmptyCtorWithFieldNoInit#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/EmptyCtorWithFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $constructor/EmptyCtorWithFieldAccess#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/EmptyCtorWithFieldAccess#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $constructor/JustFieldInit#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/JustFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $constructor/JustFieldNoInit#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/JustFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) (func $constructor/CtorReturns#constructor (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 ) - (func $constructor/CtorFieldInitOrder#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/CtorFieldInitOrder#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $constructor/CtorFieldInitOrder#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $constructor/CtorFieldInitOrder#get:c (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $constructor/CtorFieldInitOrder#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $constructor/CtorFieldInitOrder#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/CtorFieldInitOrder#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $constructor/CtorFieldInitOrder#set:c (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $constructor/CtorFieldInitOrder#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $start:constructor (type $none_=>_none) - memory.size $0 - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 144 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 176 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 320 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $constructor/EmptyCtor#constructor - global.set $constructor/emptyCtor - i32.const 0 - call $constructor/EmptyCtorWithFieldInit#constructor - global.set $constructor/emptyCtorWithFieldInit - i32.const 0 - call $constructor/EmptyCtorWithFieldNoInit#constructor - global.set $constructor/emptyCtorWithFieldNoInit - i32.const 0 - call $constructor/EmptyCtorWithFieldAccess#constructor - global.set $constructor/emptyCtorWithFieldAccess - i32.const 0 - call $constructor/None#constructor - global.set $constructor/none - i32.const 0 - call $constructor/JustFieldInit#constructor - global.set $constructor/justFieldInit - i32.const 0 - call $constructor/JustFieldNoInit#constructor - global.set $constructor/justFieldNoInit - i32.const 0 - call $constructor/CtorReturns#constructor - global.set $constructor/ctorReturns - i32.const 0 - call $constructor/CtorConditionallyReturns#constructor - global.set $constructor/ctorConditionallyReturns - i32.const 0 - call $constructor/CtorConditionallyReturnsThis#constructor - global.set $constructor/ctorConditionallyReturnsThis - i32.const 0 - i32.const 1 - i32.const 2 - call $constructor/CtorFieldInitOrder#constructor - global.set $constructor/ctorFieldInitOrder - global.get $constructor/ctorFieldInitOrder - i32.load $0 offset=4 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 102 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $constructor/ctorFieldInitOrder - i32.load $0 offset=8 - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 103 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $constructor/ctorFieldInitOrder - i32.load $0 - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 104 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $constructor/emptyCtor @@ -2477,6 +2428,127 @@ unreachable end ) + (func $start:constructor (type $none_=>_none) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $constructor/EmptyCtor#constructor + global.set $constructor/emptyCtor + i32.const 0 + call $constructor/EmptyCtorWithFieldInit#constructor + global.set $constructor/emptyCtorWithFieldInit + i32.const 0 + call $constructor/EmptyCtorWithFieldNoInit#constructor + global.set $constructor/emptyCtorWithFieldNoInit + i32.const 0 + call $constructor/EmptyCtorWithFieldAccess#constructor + global.set $constructor/emptyCtorWithFieldAccess + i32.const 0 + call $constructor/None#constructor + global.set $constructor/none + i32.const 0 + call $constructor/JustFieldInit#constructor + global.set $constructor/justFieldInit + i32.const 0 + call $constructor/JustFieldNoInit#constructor + global.set $constructor/justFieldNoInit + i32.const 0 + call $constructor/CtorReturns#constructor + global.set $constructor/ctorReturns + i32.const 0 + call $constructor/CtorConditionallyReturns#constructor + global.set $constructor/ctorConditionallyReturns + i32.const 0 + call $constructor/CtorConditionallyReturnsThis#constructor + global.set $constructor/ctorConditionallyReturnsThis + i32.const 0 + i32.const 1 + i32.const 2 + call $constructor/CtorFieldInitOrder#constructor + global.set $constructor/ctorFieldInitOrder + global.get $constructor/ctorFieldInitOrder + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $constructor/CtorFieldInitOrder#get:a + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $constructor/ctorFieldInitOrder + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $constructor/CtorFieldInitOrder#get:b + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 103 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $constructor/ctorFieldInitOrder + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $constructor/CtorFieldInitOrder#get:c + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 104 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $constructor/EmptyCtor#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2797,9 +2869,9 @@ call $constructor/CtorFieldInitOrder#set:b local.get $this local.get $this - i32.load $0 offset=4 + call $constructor/CtorFieldInitOrder#get:a local.get $this - i32.load $0 offset=8 + call $constructor/CtorFieldInitOrder#get:b i32.add call $constructor/CtorFieldInitOrder#set:c local.get $a @@ -2815,7 +2887,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $constructor/CtorFieldInitOrder#get:a i32.const 1 i32.eq i32.eqz @@ -2840,7 +2912,7 @@ unreachable end local.get $this - i32.load $0 offset=8 + call $constructor/CtorFieldInitOrder#get:b i32.const 2 i32.eq i32.eqz @@ -2853,7 +2925,7 @@ unreachable end local.get $this - i32.load $0 + call $constructor/CtorFieldInitOrder#get:c i32.const 3 i32.eq i32.eqz diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 18564e16ea..03999ef616 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1432,45 +1432,116 @@ memory.fill $0 local.get $1 ) - (func $start:constructor (type $none_=>_none) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $constructor/CtorFieldInitOrder + block $constructor/CtorConditionallyReturnsThis + block $constructor/CtorConditionallyReturns + block $constructor/CtorReturns + block $constructor/JustFieldNoInit + block $constructor/JustFieldInit + block $constructor/None + block $constructor/EmptyCtorWithFieldAccess + block $constructor/EmptyCtorWithFieldNoInit + block $constructor/EmptyCtorWithFieldInit + block $constructor/EmptyCtor + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $constructor/EmptyCtor $constructor/EmptyCtorWithFieldInit $constructor/EmptyCtorWithFieldNoInit $constructor/EmptyCtorWithFieldAccess $constructor/None $constructor/JustFieldInit $constructor/JustFieldNoInit $constructor/CtorReturns $constructor/CtorConditionallyReturns $constructor/CtorConditionallyReturnsThis $constructor/CtorFieldInitOrder $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) (local $0 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34372 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1604 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34372 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1604 i32.lt_s @@ -1771,7 +1842,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $constructor/ctorFieldInitOrder + global.get $~lib/memory/__stack_pointer global.get $constructor/ctorFieldInitOrder + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 1 i32.ne @@ -1783,7 +1858,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer global.get $constructor/ctorFieldInitOrder + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=8 i32.const 2 i32.ne @@ -1795,7 +1874,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer global.get $constructor/ctorFieldInitOrder + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 3 i32.ne @@ -1807,6 +1890,10 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer return end i32.const 34400 @@ -1816,68 +1903,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $constructor/CtorFieldInitOrder - block $constructor/CtorConditionallyReturnsThis - block $constructor/CtorConditionallyReturns - block $constructor/CtorReturns - block $constructor/JustFieldNoInit - block $constructor/JustFieldInit - block $constructor/None - block $constructor/EmptyCtorWithFieldAccess - block $constructor/EmptyCtorWithFieldNoInit - block $constructor/EmptyCtorWithFieldInit - block $constructor/EmptyCtor - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $constructor/EmptyCtor $constructor/EmptyCtorWithFieldInit $constructor/EmptyCtorWithFieldNoInit $constructor/EmptyCtorWithFieldAccess $constructor/None $constructor/JustFieldInit $constructor/JustFieldNoInit $constructor/CtorReturns $constructor/CtorConditionallyReturns $constructor/CtorConditionallyReturnsThis $constructor/CtorFieldInitOrder $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - call $start:constructor - ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 688e0e6f8a..c4788bd475 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -451,14 +451,14 @@ i32.const 1 global.set $do/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -470,9 +470,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -480,7 +484,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -532,7 +536,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -541,11 +545,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -564,7 +572,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -586,7 +594,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -607,6 +615,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -630,12 +646,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -654,7 +670,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -678,7 +694,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -757,36 +773,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -811,7 +843,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -911,10 +943,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -1005,7 +1037,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1058,7 +1090,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1080,7 +1112,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1088,7 +1120,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1115,7 +1147,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1123,7 +1155,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1138,7 +1170,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1333,7 +1365,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1443,7 +1475,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1697,7 +1729,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1720,7 +1752,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2160,7 +2192,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2337,7 +2369,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2407,7 +2439,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2419,13 +2451,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2469,7 +2501,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2508,14 +2540,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 76ef40cd97..bbed4baa31 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -994,6 +994,239 @@ end end ) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 3 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill $0 + local.get $0 + ) (func $start:do (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -1478,10 +1711,6 @@ ) (func $do/Ref#constructor (type $none_=>_i32) (result i32) (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1498,237 +1727,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $3 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - 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 $0 - i32.const 0 - i32.lt_s - if - local.get $1 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $4 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $1 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $4 - local.get $1 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $4 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 3 - i32.store $0 offset=12 - local.get $0 i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load $0 offset=8 - local.set $3 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $1 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $3 - i32.store $0 offset=8 - local.get $3 - local.get $0 - local.get $3 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total + i32.store $0 local.get $0 - i32.const 20 - i32.add + call $~lib/rt/itcms/__new local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $2 - local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/duplicate-field-errors.json b/tests/compiler/duplicate-field-errors.json index c6bec26ad5..dd6ed9a032 100644 --- a/tests/compiler/duplicate-field-errors.json +++ b/tests/compiler/duplicate-field-errors.json @@ -2,13 +2,14 @@ "asc_flags": [ ], "stderr": [ + "TS2385: Overload signatures must all be public, private or protected.", "public privPub: i32;", "private privPub: i32;", "TS2442: Types have separate declarations of a private property 'privPriv'.", "TS2325: Property 'privProt' is private in type 'duplicate-field-errors/A' but not in type 'duplicate-field-errors/B'.", "TS2325: Property 'privPub' is private in type 'duplicate-field-errors/A' but not in type 'duplicate-field-errors/B'.", "TS2325: Property 'protPriv' is private in type 'duplicate-field-errors/B' but not in type 'duplicate-field-errors/A'.", "TS2325: Property 'pubPriv' is private in type 'duplicate-field-errors/B' but not in type 'duplicate-field-errors/A'.", "TS2444: Property 'pubProt' is protected in type 'duplicate-field-errors/B' but public in type 'duplicate-field-errors/A'.", - "TS2300: Duplicate identifier 'method'.", - "Property 'sibling' in type 'duplicate-field-errors/Cat' is not assignable to the same property in base type 'duplicate-field-errors/Animal'." + "TS2394: This overload signature is not compatible with its implementation signature.", "public method: i32;", "method(): void", + "TS2394: This overload signature is not compatible with its implementation signature.", "sibling: Cat | null;", "sibling: Animal | null;" ] } diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 33a991df4e..64a4b61fa1 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -44,19 +44,19 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $duplicate-fields/A#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/A#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -68,9 +68,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -78,7 +82,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -130,7 +134,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -139,11 +143,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -162,7 +170,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -184,7 +192,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -205,6 +213,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -228,12 +244,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -252,7 +268,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -276,7 +292,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -355,36 +371,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -409,7 +441,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -509,10 +541,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -603,7 +635,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -656,7 +688,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -678,7 +710,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -686,7 +718,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -713,7 +745,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -721,7 +753,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -736,7 +768,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -931,7 +963,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1041,7 +1073,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1295,7 +1327,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1318,7 +1350,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1758,7 +1790,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1935,7 +1967,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2005,7 +2037,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2017,13 +2049,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2067,7 +2099,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2106,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2168,11 +2200,15 @@ memory.fill $0 local.get $ptr ) - (func $duplicate-fields/B#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/B#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) + (func $duplicate-fields/B#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2241,59 +2277,57 @@ end end ) - (func $duplicate-fields/A2#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/A2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $duplicate-fields/B2#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/B2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $duplicate-fields/Foo#set:foo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/Foo#set:foo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $duplicate-fields/A3#set:protProt (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/B2#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $duplicate-fields/Foo#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $duplicate-fields/A3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $duplicate-fields/A3#set:protPub (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/A3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $duplicate-fields/A3#set:pubPub (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=8 - ) - (func $duplicate-fields/B3#set:protProt (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/B3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $duplicate-fields/B3#set:protPub (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $duplicate-fields/B3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $duplicate-fields/B3#set:pubPub (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=8 - ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $duplicate-fields/foo @@ -2421,13 +2455,13 @@ (func $start:duplicate-fields (type $none_=>_none) (local $0 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 $0 + i64.const 0 + i64.store $0 i32.const 0 i32.const 0 i32.eq @@ -2458,7 +2492,12 @@ call $duplicate-fields/B#constructor global.set $duplicate-fields/foo global.get $duplicate-fields/foo - i32.load $0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $duplicate-fields/B#get:bar i32.const 10 i32.eq i32.eqz @@ -2485,13 +2524,23 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store $0 + i32.store $0 offset=4 local.get $0 call $duplicate-fields/B2#constructor global.set $duplicate-fields/raz global.get $duplicate-fields/raz - i32.load $0 - i32.load $0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + local.get $0 + call $duplicate-fields/B2#get:bar + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $duplicate-fields/Foo#get:foo i32.const 1 i32.eq i32.eqz @@ -2507,7 +2556,7 @@ call $duplicate-fields/B3#constructor drop global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2707,7 +2756,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.const 9 call $~lib/rt/itcms/__new local.tee $this @@ -2715,13 +2764,10 @@ end local.get $this i32.const 0 - call $duplicate-fields/A3#set:protProt - local.get $this - i32.const 0 - call $duplicate-fields/A3#set:protPub + call $duplicate-fields/A3#set:prot local.get $this i32.const 0 - call $duplicate-fields/A3#set:pubPub + call $duplicate-fields/A3#set:pub local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2744,7 +2790,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.const 8 call $~lib/rt/itcms/__new local.tee $this @@ -2757,13 +2803,10 @@ i32.store $0 local.get $this i32.const 0 - call $duplicate-fields/B3#set:protProt - local.get $this - i32.const 0 - call $duplicate-fields/B3#set:protPub + call $duplicate-fields/B3#set:prot local.get $this i32.const 0 - call $duplicate-fields/B3#set:pubPub + call $duplicate-fields/B3#set:pub 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 4111a90883..786c76d13f 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1517,6 +1517,61 @@ memory.fill $0 local.get $1 ) + (func $duplicate-fields/A2#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) (local $1 i32) block $folding-inner0 @@ -1573,7 +1628,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1583,8 +1638,8 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 memory.size $0 i32.const 16 i32.shl @@ -1682,7 +1737,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $duplicate-fields/foo + global.get $~lib/memory/__stack_pointer global.get $duplicate-fields/foo + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 10 i32.ne @@ -1724,7 +1783,7 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 - i32.store $0 + i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1745,7 +1804,7 @@ i32.store $0 local.get $0 i32.const 0 - i32.store $0 + call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 4 @@ -1770,16 +1829,10 @@ end local.get $0 i32.const 0 - i32.store $0 + call $duplicate-fields/A2#set:bar local.get $0 local.get $2 - i32.store $0 - local.get $2 - if - local.get $0 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1789,21 +1842,23 @@ i32.store $0 local.get $0 local.get $2 - i32.store $0 - local.get $2 - if - local.get $0 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 global.set $duplicate-fields/raz + global.get $~lib/memory/__stack_pointer global.get $duplicate-fields/raz + local.tee $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.load $0 + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.ne @@ -1828,7 +1883,7 @@ i32.const 0 i32.store $0 local.get $0 - i32.const 12 + i32.const 8 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 @@ -1849,7 +1904,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 @@ -1861,9 +1916,6 @@ local.get $0 i32.const 0 i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1877,15 +1929,12 @@ local.get $0 i32.const 0 i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 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 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return @@ -1916,53 +1965,4 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/duplicate-fields.ts b/tests/compiler/duplicate-fields.ts index c11f2b5d96..de671115e2 100644 --- a/tests/compiler/duplicate-fields.ts +++ b/tests/compiler/duplicate-fields.ts @@ -45,15 +45,13 @@ assert(raz.bar.foo == 1); // make sure visibility checks allow these class A3 { - protected protProt: i32; - protected protPub: i32; - public pubPub: i32; + protected prot: i32; + public pub: i32; } class B3 extends A3 { - protected protProt: i32; - public protPub: i32; - public pubPub: i32; + protected prot: i32; + public pub: i32; } new B3(); diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index a91c1264a6..0e2269c31e 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -48,14 +48,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -67,9 +67,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -77,7 +81,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -129,7 +133,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -138,11 +142,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -161,7 +169,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -183,7 +191,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -204,6 +212,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -227,12 +243,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -251,7 +267,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -275,7 +291,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -354,36 +370,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -408,7 +440,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -508,10 +540,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -602,7 +634,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -655,7 +687,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -677,7 +709,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -685,7 +717,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -712,7 +744,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -720,7 +752,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -735,7 +767,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -930,7 +962,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1040,7 +1072,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1294,7 +1326,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1317,7 +1349,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1757,7 +1789,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1934,7 +1966,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2004,7 +2036,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2016,13 +2048,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2066,7 +2098,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2105,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 8417dceeb9..653fb062a3 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -41,14 +41,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -60,9 +60,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -70,7 +74,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -122,7 +126,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -131,11 +135,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -154,7 +162,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -176,7 +184,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -197,6 +205,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -220,12 +236,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -244,7 +260,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -268,7 +284,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -347,36 +363,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -401,7 +433,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -501,10 +533,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -595,7 +627,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -648,7 +680,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -670,7 +702,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -678,7 +710,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -705,7 +737,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -713,7 +745,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -728,7 +760,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -923,7 +955,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1033,7 +1065,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1287,7 +1319,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1310,7 +1342,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1750,7 +1782,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1927,7 +1959,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1997,7 +2029,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2009,13 +2041,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2059,7 +2091,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2098,14 +2130,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index dc80d45625..1d2b0fffc4 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -990,69 +990,11 @@ end end ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) + (func $~lib/rt/itcms/__new (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34236 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1245,8 +1187,8 @@ i32.load $0 offset=8 local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 @@ -1279,6 +1221,67 @@ i32.const 0 memory.fill $0 ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + memory.size $0 + i32.const 16 + i32.shl + i32.const 34236 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $~lib/rt/itcms/__new + ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 17a9c5fe6b..2289e2b015 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) @@ -73,19 +73,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -97,9 +97,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -107,7 +111,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -159,7 +163,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -168,11 +172,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -191,7 +199,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -213,7 +221,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -234,6 +242,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -257,12 +273,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -281,7 +297,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -305,7 +321,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -384,36 +400,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -438,7 +470,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -538,10 +570,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -632,7 +664,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -685,7 +717,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -707,7 +739,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -715,7 +747,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -742,7 +774,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -750,7 +782,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -765,7 +797,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -960,7 +992,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1070,7 +1102,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1324,7 +1356,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1347,7 +1379,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1787,7 +1819,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1964,7 +1996,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2034,7 +2066,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2046,13 +2078,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2096,7 +2128,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2135,14 +2167,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2197,10 +2229,14 @@ memory.fill $0 local.get $ptr ) - (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) + (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $exports/Car#get:doors + ) (func $start:exportstar-rereexport (type $none_=>_none) call $start:rereexport ) diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 9ac26932d6..3c20992a2c 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -1025,194 +1025,11 @@ end end ) - (func $export-default/theDefault (type $none_=>_none) - nop - ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $exports/Car - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - (local $0 i32) - block $__inlined_func$start:exportstar-rereexport - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34340 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store $0 - i32.const 1224 - i32.const 1216 - i32.store $0 - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store $0 - i32.const 1256 - i32.const 1248 - i32.store $0 - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store $0 - i32.const 1400 - i32.const 1392 - i32.store $0 - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:exportstar-rereexport - end - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $exports/Car#constructor (type $none_=>_i32) (result i32) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 1572 - i32.lt_s - if - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1264,7 +1081,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1272,7 +1089,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1304,7 +1121,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1312,7 +1129,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1339,12 +1156,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1354,7 +1171,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1363,19 +1180,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1403,18 +1220,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1438,8 +1255,195 @@ local.tee $0 i32.const 0 i32.store $0 align=1 - local.get $2 local.get $0 + ) + (func $export-default/theDefault (type $none_=>_none) + nop + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 i32) + block $__inlined_func$start:exportstar-rereexport + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34340 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store $0 + i32.const 1224 + i32.const 1216 + i32.store $0 + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store $0 + i32.const 1256 + i32.const 1248 + i32.store $0 + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store $0 + i32.const 1400 + i32.const 1392 + i32.store $0 + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:exportstar-rereexport + end + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $exports/Car#constructor (type $none_=>_i32) (result i32) + (local $0 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 1572 + i32.lt_s + if + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 local.get $0 i32.const 2 diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index af3518e67c..9de3520871 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -51,14 +51,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -70,9 +70,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -80,7 +84,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -132,7 +136,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -141,11 +145,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -164,7 +172,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -186,7 +194,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -207,6 +215,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -230,12 +246,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -254,7 +270,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -278,7 +294,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -357,36 +373,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -411,7 +443,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -511,10 +543,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -605,7 +637,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -658,7 +690,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -680,7 +712,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -688,7 +720,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -715,7 +747,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -723,7 +755,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -738,7 +770,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -933,7 +965,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1043,7 +1075,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1297,7 +1329,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1320,7 +1352,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1760,7 +1792,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1937,7 +1969,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2007,7 +2039,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2019,13 +2051,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2069,7 +2101,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2108,14 +2140,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2170,14 +2202,14 @@ memory.fill $0 local.get $ptr ) - (func $extends-baseaggregate/A1#set:padding0 (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $extends-baseaggregate/A1#set:padding0 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 ) - (func $extends-baseaggregate/A1#set:padding1 (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $extends-baseaggregate/A1#set:padding1 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=8 ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) @@ -2248,15 +2280,31 @@ end end ) - (func $extends-baseaggregate/A1#set:c1 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $extends-baseaggregate/A1#set:c1 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2268,7 +2316,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2285,7 +2333,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2293,7 +2341,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2314,7 +2362,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2336,7 +2384,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2398,16 +2446,20 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $oldLen i32) (local $len i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $oldLen local.get $oldLen i32.const 1 @@ -2421,7 +2473,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $oldLen i32.const 2 i32.shl @@ -2512,6 +2564,18 @@ local.get $1 call $extends-baseaggregate/A1~visit ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2520,11 +2584,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -2553,7 +2617,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2562,6 +2626,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2570,11 +2638,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -2603,7 +2671,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 78968bb050..4f74cbe2d6 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1515,7 +1515,7 @@ memory.fill $0 local.get $1 ) - (func $~lib/array/Array~visit (type $i32_=>_none) (param $0 i32) + (func $~lib/array/Array#__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1574,11 +1574,11 @@ return end local.get $0 - call $~lib/array/Array~visit + call $~lib/array/Array#__visit return end local.get $0 - call $~lib/array/Array~visit + call $~lib/array/Array#__visit return end unreachable @@ -1608,7 +1608,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1673,7 +1672,7 @@ i32.const 20 i32.const 6 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.tee $0 @@ -1687,23 +1686,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store $0 end - local.get $6 + local.get $5 f64.const 0 f64.store $0 - local.get $6 + local.get $5 f64.const 0 f64.store $0 offset=8 - local.get $6 + local.get $5 i32.const 0 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -1711,29 +1710,29 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $6 + local.get $5 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store $0 offset=4 i32.const 1180 i32.load $0 local.tee $3 i32.const 1 i32.add - local.tee $5 + local.tee $4 i32.const 1176 i32.load $0 - local.tee $1 + local.tee $0 i32.const 2 i32.shr_u i32.gt_u if - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if @@ -1744,39 +1743,37 @@ call $~lib/builtins/abort unreachable end - i32.const 1168 - i32.load $0 - local.tee $0 - local.set $2 block $__inlined_func$~lib/rt/itcms/__renew i32.const 1073741820 - local.get $1 + local.get $0 i32.const 1 i32.shl - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 1073741820 i32.ge_u select - local.tee $1 + local.tee $0 i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $4 + local.tee $1 + local.get $0 local.get $1 - local.get $4 i32.gt_u select - local.tee $7 - local.get $0 + local.tee $2 + i32.const 1168 + i32.load $0 + local.tee $1 i32.const 20 i32.sub - local.tee $4 + local.tee $6 i32.load $0 i32.const -4 i32.and @@ -1784,31 +1781,31 @@ i32.sub i32.le_u if - local.get $4 - local.get $7 + local.get $6 + local.get $2 i32.store $0 offset=16 + local.get $1 + local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $7 - local.get $4 + local.get $2 + local.get $6 i32.load $0 offset=12 call $~lib/rt/itcms/__new - local.tee $1 - local.get $0 - local.get $7 - local.get $4 - i32.load $0 offset=16 local.tee $0 - local.get $0 - local.get $7 - i32.gt_u + local.get $1 + local.get $2 + local.get $6 + i32.load $0 offset=16 + local.tee $6 + local.get $2 + local.get $6 + i32.lt_u select memory.copy $0 $0 - local.get $1 - local.set $0 end local.get $0 - local.get $2 + local.get $1 i32.ne if i32.const 1168 @@ -1825,7 +1822,7 @@ end end i32.const 1176 - local.get $7 + local.get $2 i32.store $0 end i32.const 1172 @@ -1834,16 +1831,16 @@ i32.const 2 i32.shl i32.add - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if - local.get $6 + local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 1180 - local.get $5 + local.get $4 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index c7995b183e..e59a87c697 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -41,14 +41,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -60,9 +60,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -70,7 +74,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -122,7 +126,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -131,11 +135,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -154,7 +162,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -176,7 +184,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -197,6 +205,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -220,12 +236,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -244,7 +260,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -268,7 +284,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -347,36 +363,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -401,7 +433,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -501,10 +533,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -595,7 +627,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -648,7 +680,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -670,7 +702,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -678,7 +710,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -705,7 +737,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -713,7 +745,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -728,7 +760,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -923,7 +955,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1033,7 +1065,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1287,7 +1319,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1310,7 +1342,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1750,7 +1782,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1927,7 +1959,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1997,7 +2029,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2009,13 +2041,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2059,7 +2091,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2098,14 +2130,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2228,12 +2260,12 @@ end end ) - (func $extends-recursive/Parent#set:child (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $extends-recursive/Parent#set:child (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index 01860fab38..4390f3db3a 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -52,14 +52,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -71,9 +71,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -81,7 +85,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -133,7 +137,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -142,11 +146,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -165,7 +173,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -187,7 +195,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -208,6 +216,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -231,12 +247,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -255,7 +271,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -279,7 +295,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -358,36 +374,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -412,7 +444,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -512,10 +544,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -606,7 +638,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -659,7 +691,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -681,7 +713,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -689,7 +721,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -716,7 +748,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -724,7 +756,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -739,7 +771,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -934,7 +966,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1044,7 +1076,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1298,7 +1330,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1321,7 +1353,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1761,7 +1793,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1938,7 +1970,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2008,7 +2040,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2020,13 +2052,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2070,7 +2102,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2109,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2171,16 +2203,24 @@ memory.fill $0 local.get $ptr ) - (func $field-initialization/Value_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Value_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $field-initialization/Value#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Value_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Value#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) + (func $field-initialization/Value#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2249,130 +2289,194 @@ end end ) - (func $field-initialization/Ref_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Nullable_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Nullable_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Nullable#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Nullable_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Nullable#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Value_Ctor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Nullable#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Value_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $field-initialization/Value_Init_Ctor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Value_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Value_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $field-initialization/Value_Ctor_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Value_Init_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Value_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $field-initialization/Ref_Init_Ctor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Value_Ctor_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Ref_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Ref_Ctor_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Init_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Ref_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Ref_Ctor_Param#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Ctor_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Ref_Ctor_Param#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Nullable_Ctor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Ctor_Param#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Nullable_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Nullable_Init_Ctor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Nullable_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Nullable_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Nullable_Ctor_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Nullable_Init_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Nullable_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Inherit_Base#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Nullable_Ctor_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Inherit_Base#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/SomeObject#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Inherit_Base#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/SomeObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $field-initialization/SomeObject#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/SomeObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $field-initialization/SomeObject#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/SomeObject#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2524,42 +2628,58 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $field-initialization/SomeOtherObject#set:c (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/SomeOtherObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Flow_Balanced#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/SomeOtherObject#get:c (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $field-initialization/Flow_Balanced#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Ref_Init_InlineCtor#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Flow_Balanced#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Ref_Init_InlineCtor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $field-initialization/Ref_InlineCtor_Init#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field-initialization/Ref_Init_InlineCtor#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $field-initialization/Ref_InlineCtor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $field-initialization/Ref_InlineCtor_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) i32.const 224 @@ -2916,8 +3036,335 @@ unreachable end ) - (func $start:field-initialization (type $none_=>_none) - (local $0 i32) + (func $field-initialization/Ref_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Ref_Init#set:a + 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 (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Nullable_Init#set:a + 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/Ref_Init_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Ref_Init_Ctor#set:a + 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/Ref_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + call $field-initialization/Ref_Ctor_Init#set:a + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Ref_Ctor_Init#set:a + 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_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Nullable_Init_Ctor#set:a + 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_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + call $field-initialization/Nullable_Ctor_Init#set:a + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Nullable_Ctor_Init#set:a + 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/Inherit_Base#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + 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 $0 offset=4 + local.get $1 + call $field-initialization/Inherit_Base#set:a + 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/Flow_Balanced#constructor (type $i32_i32_=>_i32) (param $this i32) (param $cond i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + call $field-initialization/Flow_Balanced#set:a + local.get $cond + if + local.get $this + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $2 + call $field-initialization/Flow_Balanced#set:a + else + local.get $this + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $2 + call $field-initialization/Flow_Balanced#set:a + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $start:field-initialization (type $none_=>_none) + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2984,7 +3431,7 @@ local.tee $0 i32.store $0 local.get $0 - i32.load $0 + call $field-initialization/Value_Init#get:a i32.const 1 i32.eq i32.eqz @@ -3002,7 +3449,7 @@ local.tee $1 i32.store $0 offset=4 local.get $1 - i32.load $0 + call $field-initialization/Value#get:a i32.const 0 i32.eq i32.eqz @@ -3020,7 +3467,7 @@ local.tee $2 i32.store $0 offset=8 local.get $2 - i32.load $0 + call $field-initialization/Ref_Init#get:a i32.const 0 i32.ne i32.eqz @@ -3038,7 +3485,7 @@ local.tee $3 i32.store $0 offset=12 local.get $3 - i32.load $0 + call $field-initialization/Nullable_Init#get:a i32.const 0 i32.ne i32.eqz @@ -3056,7 +3503,7 @@ local.tee $4 i32.store $0 offset=16 local.get $4 - i32.load $0 + call $field-initialization/Nullable#get:a i32.const 0 i32.eq i32.eqz @@ -3074,7 +3521,7 @@ local.tee $5 i32.store $0 offset=20 local.get $5 - i32.load $0 + call $field-initialization/Value_Ctor#get:a i32.const 0 i32.eq i32.eqz @@ -3092,7 +3539,7 @@ local.tee $6 i32.store $0 offset=24 local.get $6 - i32.load $0 + call $field-initialization/Value_Init_Ctor#get:a i32.const 1 i32.eq i32.eqz @@ -3110,7 +3557,7 @@ local.tee $7 i32.store $0 offset=28 local.get $7 - i32.load $0 + call $field-initialization/Value_Ctor_Init#get:a i32.const 1 i32.eq i32.eqz @@ -3128,7 +3575,7 @@ local.tee $8 i32.store $0 offset=32 local.get $8 - i32.load $0 + call $field-initialization/Ref_Init_Ctor#get:a i32.const 0 i32.ne i32.eqz @@ -3146,7 +3593,7 @@ local.tee $9 i32.store $0 offset=36 local.get $9 - i32.load $0 + call $field-initialization/Ref_Ctor_Init#get:a i32.const 0 i32.ne i32.eqz @@ -3171,7 +3618,7 @@ local.tee $11 i32.store $0 offset=44 local.get $11 - i32.load $0 + call $field-initialization/Ref_Ctor_Param#get:a local.get $10 i32.eq i32.eqz @@ -3189,7 +3636,7 @@ local.tee $12 i32.store $0 offset=48 local.get $12 - i32.load $0 + call $field-initialization/Nullable_Ctor#get:a i32.const 0 i32.eq i32.eqz @@ -3207,7 +3654,7 @@ local.tee $13 i32.store $0 offset=52 local.get $13 - i32.load $0 + call $field-initialization/Nullable_Init_Ctor#get:a i32.const 0 i32.ne i32.eqz @@ -3225,7 +3672,7 @@ local.tee $14 i32.store $0 offset=56 local.get $14 - i32.load $0 + call $field-initialization/Nullable_Ctor_Init#get:a i32.const 0 i32.ne i32.eqz @@ -3243,7 +3690,7 @@ local.tee $15 i32.store $0 offset=60 local.get $15 - i32.load $0 + call $field-initialization/Inherit_Base#get:a i32.const 0 i32.ne i32.eqz @@ -3261,7 +3708,7 @@ local.tee $16 i32.store $0 offset=64 local.get $16 - i32.load $0 + call $field-initialization/Inherit_Base#get:a i32.const 0 i32.ne i32.eqz @@ -3281,15 +3728,15 @@ i32.store $0 offset=68 local.get $17 i32.const 0 - call $field-initialization/SomeObject#set:a + i32.store $0 local.get $17 i32.const 0 - call $field-initialization/SomeObject#set:b + i32.store $0 offset=4 local.get $17 local.tee $18 i32.store $0 offset=72 local.get $18 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 0 i32.eq i32.eqz @@ -3302,7 +3749,7 @@ unreachable end local.get $18 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3330,12 +3777,12 @@ call $field-initialization/SomeObject#set:a local.get $19 i32.const 0 - call $field-initialization/SomeObject#set:b + i32.store $0 offset=4 local.get $19 local.tee $20 i32.store $0 offset=84 local.get $20 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 1 i32.eq i32.eqz @@ -3348,7 +3795,7 @@ unreachable end local.get $20 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3373,15 +3820,20 @@ i32.store $0 offset=88 local.get $21 i32.const 624 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store $0 offset=92 + local.get $34 call $field-initialization/SomeObject#set:b local.get $21 i32.const 0 - call $field-initialization/SomeObject#set:a + i32.store $0 local.get $21 local.tee $22 - i32.store $0 offset=92 + i32.store $0 offset=96 local.get $22 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 0 i32.eq i32.eqz @@ -3394,7 +3846,7 @@ unreachable end local.get $22 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3404,7 +3856,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $34 call $~lib/string/String.__eq i32.eqz @@ -3427,12 +3879,17 @@ call $field-initialization/SomeObject#set:a local.get $23 i32.const 656 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store $0 offset=92 + local.get $34 call $field-initialization/SomeObject#set:b local.get $23 local.tee $24 i32.store $0 offset=104 local.get $24 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 2 i32.eq i32.eqz @@ -3445,7 +3902,7 @@ unreachable end local.get $24 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3455,7 +3912,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $34 call $~lib/string/String.__eq i32.eqz @@ -3475,18 +3932,23 @@ i32.store $0 offset=108 local.get $25 i32.const 688 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store $0 offset=92 + local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $25 i32.const 0 - call $field-initialization/SomeObject#set:a + i32.store $0 local.get $25 i32.const 0 - call $field-initialization/SomeObject#set:b + i32.store $0 offset=4 local.get $25 local.tee $26 i32.store $0 offset=112 local.get $26 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 0 i32.eq i32.eqz @@ -3499,7 +3961,7 @@ unreachable end local.get $26 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3517,7 +3979,7 @@ unreachable end local.get $26 - i32.load $0 offset=8 + call $field-initialization/SomeOtherObject#get:c local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3527,7 +3989,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $34 call $~lib/string/String.__eq i32.eqz @@ -3550,15 +4012,25 @@ call $field-initialization/SomeObject#set:a local.get $27 i32.const 720 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store $0 offset=92 + local.get $34 call $field-initialization/SomeObject#set:b local.get $27 i32.const 752 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store $0 offset=92 + local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $27 local.tee $28 i32.store $0 offset=120 local.get $28 - i32.load $0 + call $field-initialization/SomeObject#get:a i32.const 3 i32.eq i32.eqz @@ -3571,7 +4043,7 @@ unreachable end local.get $28 - i32.load $0 offset=4 + call $field-initialization/SomeObject#get:b local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3581,7 +4053,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $34 call $~lib/string/String.__eq i32.eqz @@ -3594,7 +4066,7 @@ unreachable end local.get $28 - i32.load $0 offset=8 + call $field-initialization/SomeOtherObject#get:c local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 @@ -3604,7 +4076,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $34 call $~lib/string/String.__eq i32.eqz @@ -3623,7 +4095,7 @@ local.tee $29 i32.store $0 offset=124 local.get $29 - i32.load $0 + call $field-initialization/Flow_Balanced#get:a i32.const 0 i32.ne i32.eqz @@ -3652,296 +4124,76 @@ i32.const 0 i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Ref_Init_InlineCtor#set:a - local.get $30 - local.tee $31 - i32.store $0 offset=132 - local.get $31 - i32.load $0 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 218 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $32 - local.get $32 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $32 - i32.store $0 offset=136 - end - local.get $32 - i32.const 0 - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 - local.tee $33 - i32.store $0 offset=140 - local.get $33 - i32.load $0 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 144 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $field-initialization/Value_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 1 - call $field-initialization/Value_Init#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $field-initialization/Value#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - call $field-initialization/Value#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) - (local $buffer i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $length - i32.const 1073741820 - i32.gt_u - if - i32.const 512 - i32.const 560 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store $0 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $buffer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $field-initialization/Ref_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Ref_Init#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $field-initialization/Nullable_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Nullable_Init#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $field-initialization/Nullable#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) + local.set $34 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + local.get $34 + i32.store $0 offset=92 + local.get $34 + call $field-initialization/Ref_Init_InlineCtor#set:a + local.get $30 + local.tee $31 + i32.store $0 offset=132 + local.get $31 + call $field-initialization/Ref_Init_InlineCtor#get:a + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 218 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $this + local.set $32 + local.get $32 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 7 + i32.const 24 call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + local.tee $32 + i32.store $0 offset=136 end - local.get $this + local.get $32 i32.const 0 - call $field-initialization/Nullable#set:a - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $field-initialization/Value_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 + 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 $0 offset=92 + local.get $34 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 + local.tee $33 + i32.store $0 offset=140 + local.get $33 + call $field-initialization/Ref_InlineCtor_Init#get:a i32.const 0 - i32.store $0 - local.get $this + i32.ne i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + i32.const 0 + i32.const 432 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $this - i32.const 0 - call $field-initialization/Value_Ctor#set:a - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 144 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $field-initialization/Value_Init_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Value_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3956,14 +4208,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 9 + i32.const 3 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 1 - call $field-initialization/Value_Init_Ctor#set:a + call $field-initialization/Value_Init#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3972,7 +4224,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Value_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Value#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3987,17 +4239,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 10 + i32.const 4 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 0 - call $field-initialization/Value_Ctor_Init#set:a - local.get $this - i32.const 1 - call $field-initialization/Value_Ctor_Init#set:a + call $field-initialization/Value#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4006,8 +4255,9 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Ref_Init_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) + (local $buffer i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4016,30 +4266,36 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - i32.eqz + local.get $length + i32.const 1073741820 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + i32.const 512 + i32.const 560 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable end - local.get $this - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $length i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Ref_Init_Ctor#set:a - local.get $this - local.set $1 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store $0 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $buffer + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) - (func $field-initialization/Ref_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Nullable#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4054,19 +4310,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 0 - call $field-initialization/Ref_Ctor_Init#set:a - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Ref_Ctor_Init#set:a + call $field-initialization/Nullable#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4075,8 +4326,8 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Ref_Ctor_Param#constructor (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) - (local $2 i32) + (func $field-initialization/Value_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4090,23 +4341,23 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 13 + i32.const 8 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this - local.get $a - call $field-initialization/Ref_Ctor_Param#set:a + i32.const 0 + call $field-initialization/Value_Ctor#set:a local.get $this - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $field-initialization/Nullable_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Value_Init_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4121,14 +4372,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 14 + i32.const 9 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this - i32.const 0 - call $field-initialization/Nullable_Ctor#set:a + i32.const 1 + call $field-initialization/Value_Init_Ctor#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4137,7 +4388,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Nullable_Init_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Value_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4152,16 +4403,17 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 15 + i32.const 10 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Nullable_Init_Ctor#set:a + call $field-initialization/Value_Ctor_Init#set:a + local.get $this + i32.const 1 + call $field-initialization/Value_Ctor_Init#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4170,8 +4422,8 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Nullable_Ctor_Init#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) + (func $field-initialization/Ref_Ctor_Param#constructor (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4185,28 +4437,23 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 16 + i32.const 13 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this - i32.const 0 - call $field-initialization/Nullable_Ctor_Init#set:a - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Nullable_Ctor_Init#set:a + local.get $a + call $field-initialization/Ref_Ctor_Param#set:a local.get $this - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) - (func $field-initialization/Inherit_Base#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $field-initialization/Nullable_Ctor#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4221,16 +4468,14 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 18 + i32.const 14 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Inherit_Base#set:a + call $field-initialization/Nullable_Ctor#set:a local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4375,49 +4620,4 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $field-initialization/Flow_Balanced#constructor (type $i32_i32_=>_i32) (param $this i32) (param $cond i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - call $field-initialization/Flow_Balanced#set:a - local.get $cond - if - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Flow_Balanced#set:a - else - local.get $this - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $field-initialization/Flow_Balanced#set:a - end - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) ) diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index bc221ea14a..a6e6bdcaf0 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1720,6 +1720,56 @@ (func $~start (type $none_=>_none) call $start:field-initialization ) + (func $field-initialization/Inherit_Base#constructor (type $i32_=>_i32) (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 + global.get $~lib/memory/__stack_pointer + i32.const 1996 + i32.lt_s + if + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $start:field-initialization (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -1851,7 +1901,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1860,17 +1910,21 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -1879,7 +1933,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -1898,7 +1952,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1907,17 +1961,21 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -1926,7 +1984,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2108,7 +2166,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2117,17 +2175,21 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 11 call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2136,7 +2198,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2155,7 +2217,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2164,8 +2226,8 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 12 @@ -2175,9 +2237,13 @@ local.get $1 i32.const 0 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2186,7 +2252,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2296,7 +2362,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2305,17 +2371,21 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 15 call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2324,7 +2394,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2343,7 +2413,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2352,8 +2422,8 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 16 @@ -2363,9 +2433,13 @@ local.get $1 i32.const 0 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2374,7 +2448,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2567,6 +2641,9 @@ call $field-initialization/SomeObject#constructor local.tee $1 i32.store $0 offset=88 + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store $0 offset=92 local.get $1 i32.const 1648 i32.store $0 offset=4 @@ -2578,7 +2655,7 @@ i32.store $0 local.get $0 local.get $1 - i32.store $0 offset=92 + i32.store $0 offset=96 local.get $1 i32.load $0 if @@ -2597,7 +2674,7 @@ i32.store $0 offset=76 local.get $0 i32.const 1648 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $1 i32.const 1648 call $~lib/string/String.__eq @@ -2619,6 +2696,9 @@ local.get $1 i32.const 2 i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1680 + i32.store $0 offset=92 local.get $1 i32.const 1680 i32.store $0 offset=4 @@ -2648,7 +2728,7 @@ i32.store $0 offset=76 local.get $0 i32.const 1680 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $1 i32.const 1680 call $~lib/string/String.__eq @@ -2666,6 +2746,9 @@ call $field-initialization/SomeOtherObject#constructor local.tee $1 i32.store $0 offset=108 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store $0 offset=92 local.get $1 i32.const 1712 i32.store $0 offset=8 @@ -2716,7 +2799,7 @@ i32.store $0 offset=76 local.get $0 i32.const 1712 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $1 i32.const 1712 call $~lib/string/String.__eq @@ -2737,12 +2820,18 @@ local.get $1 i32.const 3 i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store $0 offset=92 local.get $1 i32.const 1744 i32.store $0 offset=4 local.get $1 i32.const 1744 call $byn-split-outlined-A$~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1776 + i32.store $0 offset=92 local.get $1 i32.const 1776 i32.store $0 offset=8 @@ -2772,7 +2861,7 @@ i32.store $0 offset=76 local.get $0 i32.const 1744 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $2 i32.const 1744 call $~lib/string/String.__eq @@ -2793,7 +2882,7 @@ i32.store $0 offset=76 local.get $0 i32.const 1776 - i32.store $0 offset=96 + i32.store $0 offset=92 local.get $1 i32.const 1776 call $~lib/string/String.__eq @@ -2808,7 +2897,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2817,8 +2906,8 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 4 i32.const 22 @@ -2828,9 +2917,13 @@ local.get $1 i32.const 0 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2839,7 +2932,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2863,9 +2956,13 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 offset=128 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=92 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2897,9 +2994,13 @@ local.get $1 i32.const 0 i32.store $0 - local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=92 + local.get $1 + local.get $2 i32.store $0 local.get $2 if @@ -2967,52 +3068,6 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $field-initialization/Inherit_Base#constructor (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1996 - i32.lt_s - if - i32.const 34784 - i32.const 34832 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - local.get $0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $field-initialization/SomeObject#constructor (type $i32_=>_i32) (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index b3a5d94833..6cda20d93f 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -43,14 +43,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -62,9 +62,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -72,7 +76,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -124,7 +128,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -133,11 +137,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -156,7 +164,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -178,7 +186,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -199,6 +207,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -222,12 +238,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -246,7 +262,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -270,7 +286,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -349,36 +365,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -403,7 +435,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -503,10 +535,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -597,7 +629,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -650,7 +682,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -672,7 +704,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -680,7 +712,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -707,7 +739,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -715,7 +747,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -730,7 +762,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -925,7 +957,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1035,7 +1067,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1289,7 +1321,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1312,7 +1344,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1752,7 +1784,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1929,7 +1961,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1999,7 +2031,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2011,13 +2043,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2061,7 +2093,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2100,14 +2132,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2162,6 +2194,21 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) + (local $buffer i32) + local.get $size + local.get $id + call $~lib/rt/itcms/__new + local.set $buffer + local.get $data + if + local.get $buffer + local.get $data + local.get $size + memory.copy $0 $0 + end + local.get $buffer + ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) (local $parent i32) @@ -2230,30 +2277,15 @@ end end ) - (func $field/NoStaticConflict#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $field/NoStaticConflict#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) - (local $buffer i32) - local.get $size - local.get $id - call $~lib/rt/itcms/__new - local.set $buffer - local.get $data - if - local.get $buffer - local.get $data - local.get $size - memory.copy $0 $0 - end - local.get $buffer - ) (func $field/NoStaticConflict.a (type $i32_=>_none) (param $v i32) nop ) @@ -2383,6 +2415,18 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2391,11 +2435,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -2424,7 +2468,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2433,11 +2477,15 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2502,6 +2550,48 @@ unreachable end ) + (func $field/NoStaticConflict#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 2 + i32.const 4 + i32.const 432 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=4 + local.get $3 + call $field/NoStaticConflict#set:a + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) (func $~lib/rt/__newArray (type $i32_i32_i32_i32_=>_i32) (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -2554,41 +2644,4 @@ global.set $~lib/memory/__stack_pointer local.get $7 ) - (func $field/NoStaticConflict#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 2 - i32.const 4 - i32.const 432 - call $~lib/rt/__newArray - call $field/NoStaticConflict#set:a - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) ) diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 686a67e9b1..53c6982e1c 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1621,7 +1621,7 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1630,8 +1630,8 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 4 i32.const 3 @@ -1685,6 +1685,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 local.get $0 local.get $2 i32.store $0 @@ -1695,7 +1698,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 733f22f25f..7d96d23e2e 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -468,14 +468,14 @@ i32.const 1 global.set $for/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -487,9 +487,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -497,7 +501,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -549,7 +553,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -558,11 +562,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -581,7 +589,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -603,7 +611,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -624,6 +632,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -647,12 +663,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -671,7 +687,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -695,7 +711,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -774,36 +790,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -828,7 +860,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -928,10 +960,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -1022,7 +1054,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1075,7 +1107,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1097,7 +1129,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1105,7 +1137,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1132,7 +1164,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1140,7 +1172,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1155,7 +1187,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1350,7 +1382,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1460,7 +1492,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1714,7 +1746,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1737,7 +1769,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2177,7 +2209,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2354,7 +2386,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2424,7 +2456,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2436,13 +2468,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2486,7 +2518,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2525,14 +2557,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index a17a8fe282..1605e415d4 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -994,6 +994,239 @@ end end ) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 3 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill $0 + local.get $0 + ) (func $start:for (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -1474,10 +1707,6 @@ ) (func $for/Ref#constructor (type $none_=>_i32) (result i32) (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1494,237 +1723,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $3 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - 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 $0 - i32.const 0 - i32.lt_s - if - local.get $1 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $4 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $1 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $4 - local.get $1 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $4 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 3 - i32.store $0 offset=12 - local.get $0 i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load $0 offset=8 - local.set $3 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $1 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $3 - i32.store $0 offset=8 - local.get $3 - local.get $0 - local.get $3 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total + i32.store $0 local.get $0 - i32.const 20 - i32.add + call $~lib/rt/itcms/__new local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $2 - local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index c9722cb4a0..482728c0a5 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -76,14 +76,14 @@ (func $start:function-call~fn2|4 (type $i32_=>_i32) (param $this i32) (result i32) local.get $this ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -95,9 +95,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -105,7 +109,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -157,7 +161,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -166,11 +170,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -189,7 +197,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -211,7 +219,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -232,6 +240,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -255,12 +271,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -279,7 +295,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -303,7 +319,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -382,36 +398,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -436,7 +468,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -536,10 +568,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -630,7 +662,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -683,7 +715,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -705,7 +737,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -713,7 +745,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -740,7 +772,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -748,7 +780,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -763,7 +795,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -958,7 +990,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1068,7 +1100,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1322,7 +1354,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1345,7 +1377,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1785,7 +1817,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1962,7 +1994,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2032,7 +2064,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2044,13 +2076,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2094,7 +2126,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2133,14 +2165,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2233,9 +2265,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2244,9 +2280,13 @@ local.get $1 call $~lib/function/Function<%28%29=>void>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2255,9 +2295,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit ) - (func $~lib/function/Function<%28this:i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28this:i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28this:i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28this:i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2266,9 +2310,13 @@ local.get $1 call $~lib/function/Function<%28this:i32%29=>i32>#__visit ) - (func $~lib/function/Function<%28this:function-call/Foo%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28this:function-call/Foo%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28this:function-call/Foo%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28this:function-call/Foo%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2277,9 +2325,13 @@ local.get $1 call $~lib/function/Function<%28this:function-call/Foo%29=>void>#__visit ) - (func $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28this:function-call/Foo%2Ci32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index af31b424b1..922df0d113 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -8,7 +8,6 @@ (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $i64_=>_i64 (func_subtype (param i64) (result i64) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $function-expression/f1 (mut i32) (i32.const 32)) (global $~argumentsLength (mut i32) (i32.const 0)) @@ -31,9 +30,9 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 1088)) - (global $~lib/memory/__data_end i32 (i32.const 1172)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33940)) - (global $~lib/memory/__heap_base i32 (i32.const 33940)) + (global $~lib/memory/__data_end i32 (i32.const 1164)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33932)) + (global $~lib/memory/__heap_base i32 (i32.const 33932)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") @@ -62,8 +61,8 @@ (data (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1088) "\n\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1088) "\t\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 20 20 funcref) (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) @@ -232,14 +231,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -251,9 +250,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -261,7 +264,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -313,7 +316,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -322,11 +325,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -345,7 +352,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -367,7 +374,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -388,6 +395,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -411,12 +426,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -435,7 +450,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -459,7 +474,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -538,36 +553,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -592,7 +623,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -692,10 +723,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -786,7 +817,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -839,7 +870,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -861,7 +892,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -869,7 +900,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -896,7 +927,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -904,7 +935,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -919,7 +950,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1114,7 +1145,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1224,7 +1255,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1478,7 +1509,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1501,7 +1532,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1941,7 +1972,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2118,7 +2149,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2188,7 +2219,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2200,13 +2231,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2250,7 +2281,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2289,14 +2320,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2419,12 +2450,12 @@ end end ) - (func $function-expression/FieldClass#set:fieldFunc (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $function-expression/FieldClass#set:fieldFunc (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) @@ -2433,10 +2464,14 @@ local.get $x i32.add ) + (func $function-expression/FieldClass#get:fieldFunc (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $function-expression/semanticallyAnonymous~fnDecl (type $i32_=>_i32) (param $val i32) (result i32) local.get $val ) - (func $function-expression/semanticallyAnonymous~fnDecl|0 (type $i64_=>_i64) (param $val i64) (result i64) + (func $function-expression/semanticallyAnonymous~fnDecl|0 (type $i32_=>_i32) (param $val i32) (result i32) local.get $val ) (func $function-expression/semanticallyAnonymous (type $none_=>_none) @@ -2492,9 +2527,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2503,9 +2542,13 @@ local.get $1 call $~lib/function/Function<%28i32%29=>i32>#__visit ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2514,9 +2557,13 @@ local.get $1 call $~lib/function/Function<%28%29=>void>#__visit ) - (func $~lib/function/Function<%28%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2525,9 +2572,13 @@ local.get $1 call $~lib/function/Function<%28%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2536,9 +2587,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit ) - (func $~lib/function/Function<%28%29=>%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>%28i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>%28i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2558,77 +2613,60 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28i64%29=>i64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) - local.get $this - i32.load $0 offset=4 - local.get $cookie - call $~lib/rt/itcms/__visit - ) - (func $~lib/function/Function<%28i64%29=>i64>~visit (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/function/Function<%28i64%29=>i64>#__visit - ) (func $~lib/rt/__visit_members (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) block $invalid - block $~lib/function/Function<%28i64%29=>i64> - block $function-expression/FieldClass - block $~lib/function/Function<%28%29=>%28i32%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%29=>i32> - block $~lib/function/Function<%28%29=>i32> - block $~lib/function/Function<%28%29=>void> - block $~lib/function/Function<%28i32%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $~lib/function/Function<%28%29=>void> $~lib/function/Function<%28%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28%29=>%28i32%29=>i32> $function-expression/FieldClass $~lib/function/Function<%28i64%29=>i64> $invalid - end - return + block $function-expression/FieldClass + block $~lib/function/Function<%28%29=>%28i32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28%29=>i32> + block $~lib/function/Function<%28%29=>void> + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $~lib/function/Function<%28%29=>void> $~lib/function/Function<%28%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28%29=>%28i32%29=>i32> $function-expression/FieldClass $invalid end return end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%29=>i32>~visit + call $~lib/arraybuffer/ArrayBufferView~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28%29=>void>~visit + call $~lib/function/Function<%28i32%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28%29=>i32>~visit + call $~lib/function/Function<%28%29=>void>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + call $~lib/function/Function<%28%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28%29=>%28i32%29=>i32>~visit + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit return end local.get $0 local.get $1 - call $function-expression/FieldClass~visit + call $~lib/function/Function<%28%29=>%28i32%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i64%29=>i64>~visit + call $function-expression/FieldClass~visit return end unreachable @@ -2641,8 +2679,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33968 - i32.const 34016 + i32.const 33952 + i32.const 34000 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2680,7 +2718,7 @@ i32.const 0 global.set $~argumentsLength local.get $fieldInst - i32.load $0 + call $function-expression/FieldClass#get:fieldFunc i32.load $0 call_indirect $0 (type $none_=>_i32) local.tee $1 diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index a73648dd40..b78f1e848f 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -7,7 +7,6 @@ (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i64_=>_i64 (func_subtype (param i64) (result i64) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -19,7 +18,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34964)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34956)) (memory $0 1) (data (i32.const 1036) "\1c") (data (i32.const 1048) "\03\00\00\00\08\00\00\00\01") @@ -70,10 +69,10 @@ (data (i32.const 2044) "\1c") (data (i32.const 2056) "\03\00\00\00\08\00\00\00\12") (data (i32.const 2076) "\1c") - (data (i32.const 2088) "\t\00\00\00\08\00\00\00\13") - (data (i32.const 2112) "\n\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 2088) "\03\00\00\00\08\00\00\00\13") + (data (i32.const 2112) "\t\00\00\00 \00\00\00\00\00\00\00 ") (table $0 20 20 funcref) - (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl|0) + (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~anonymous|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) (start $~start) @@ -180,7 +179,7 @@ i32.load $0 offset=8 i32.eqz local.get $0 - i32.const 34964 + i32.const 34956 i32.lt_u i32.and i32.eqz @@ -808,10 +807,10 @@ if unreachable end - i32.const 34976 + i32.const 34960 i32.const 0 i32.store $0 - i32.const 36544 + i32.const 36528 i32.const 0 i32.store $0 loop $for-loop|0 @@ -822,7 +821,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 34976 + i32.const 34960 i32.add i32.const 0 i32.store $0 offset=4 @@ -840,7 +839,7 @@ i32.add i32.const 2 i32.shl - i32.const 34976 + i32.const 34960 i32.add i32.const 0 i32.store $0 offset=96 @@ -858,13 +857,13 @@ br $for-loop|0 end end - i32.const 34976 - i32.const 36548 + i32.const 34960 + i32.const 36532 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 34976 + i32.const 34960 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) @@ -949,7 +948,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 34964 + i32.const 34956 i32.lt_u if local.get $0 @@ -1049,7 +1048,7 @@ unreachable end local.get $0 - i32.const 34964 + i32.const 34956 i32.lt_u if local.get $0 @@ -1072,7 +1071,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 34964 + i32.const 34956 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1191,8 +1190,237 @@ end end ) - (func $function-expression/semanticallyAnonymous~fnDecl|0 (type $i64_=>_i64) (param $0 i64) (result i64) - unreachable + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 8 + i32.store $0 offset=12 + local.get $0 + i32.const 4 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.store $0 align=1 + local.get $0 ) (func $function-expression/semanticallyAnonymous (type $none_=>_none) (local $0 i32) @@ -1201,11 +1429,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s if - i32.const 34992 - i32.const 35040 + i32.const 34976 + i32.const 35024 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1233,7 +1461,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $invalid end return end @@ -1261,401 +1489,49 @@ (func $~start (type $none_=>_none) call $start:function-expression ) - (func $function-expression/testField (type $none_=>_none) + (func $start:function-expression (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store $0 - local.get $3 - i32.const 0 - i32.store $0 offset=8 - local.get $3 - i32.const 2032 - i32.store $0 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + i32.const 1 + i32.const 1056 + i32.load $0 + call_indirect $0 (type $i32_=>_i32) + i32.const 1 + i32.ne if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $0 - i32.add - global.set $~lib/rt/itcms/threshold - end + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.const 2 + i32.const 1152 + i32.load $0 + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $4 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $0 - local.get $2 - i32.gt_s - select - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1936 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1936 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $5 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $5 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $5 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $5 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 8 - i32.store $0 offset=12 - local.get $0 - i32.const 4 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load $0 offset=8 - local.set $4 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $4 - i32.store $0 offset=8 - local.get $4 - local.get $0 - local.get $4 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.store $0 align=1 - local.get $1 - local.get $0 - i32.store $0 - local.get $0 - i32.const 2032 - i32.store $0 - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load $0 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $1 - i32.const 3 - i32.eq - i32.and - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - end - end - 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 $0 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load $0 - i32.load $0 - call_indirect $0 (type $none_=>_i32) - local.tee $0 - i32.store $0 offset=8 - i32.const 1 - local.get $0 - i32.load $0 - call_indirect $0 (type $i32_=>_i32) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - 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 - return - end - i32.const 34992 - i32.const 35040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $start:function-expression (type $none_=>_none) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - i32.const 1 - i32.const 1056 - i32.load $0 - call_indirect $0 (type $i32_=>_i32) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1152 - i32.load $0 - call_indirect $0 (type $i32_=>_i32) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 9 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.const 1088 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable end i32.const 1184 i32.load $0 @@ -1777,9 +1653,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1813,9 +1689,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -1850,7 +1726,7 @@ memory.size $0 i32.const 16 i32.shl - i32.const 34964 + i32.const 34956 i32.sub i32.const 1 i32.shr_u @@ -1879,7 +1755,119 @@ i32.store $0 i32.const 1888 global.set $~lib/rt/itcms/fromSpace - call $function-expression/testField + 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 2188 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store $0 + local.get $1 + i32.const 0 + i32.store $0 offset=8 + local.get $1 + i32.const 2032 + i32.store $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2188 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 + local.get $2 + i32.const 2032 + i32.store $0 + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load $0 + i32.const 3 + i32.and + i32.eq + if + local.get $2 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load $0 + i32.load $0 + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store $0 offset=8 + i32.const 1 + local.get $0 + i32.load $0 + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + 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 call $function-expression/semanticallyAnonymous global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1887,8 +1875,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 34992 - i32.const 35040 + i32.const 34976 + i32.const 35024 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1901,11 +1889,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s if - i32.const 34992 - i32.const 35040 + i32.const 34976 + i32.const 35024 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1931,11 +1919,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s if - i32.const 34992 - i32.const 35040 + i32.const 34976 + i32.const 35024 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1961,11 +1949,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2196 + i32.const 2188 i32.lt_s if - i32.const 34992 - i32.const 35040 + i32.const 34976 + i32.const 35024 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/function-expression.ts b/tests/compiler/function-expression.ts index b69ec8ca86..18b4b2ef45 100644 --- a/tests/compiler/function-expression.ts +++ b/tests/compiler/function-expression.ts @@ -87,7 +87,7 @@ export function semanticallyAnonymous(): void { function fnDecl(val: i32): i32 { return val; } - const exprDecl = function fnDecl(val: i64): i64 { // must not shadow + const exprDecl = function fnDecl(val: i32): i32 { // must not shadow return val; }; assert(fnDecl != exprDecl); diff --git a/tests/compiler/function-inline-regressions.debug.wat b/tests/compiler/function-inline-regressions.debug.wat index 9887152b20..8559ce7773 100644 --- a/tests/compiler/function-inline-regressions.debug.wat +++ b/tests/compiler/function-inline-regressions.debug.wat @@ -32,19 +32,19 @@ i32.const 16 i32.load $0 ) - (func $function-inline-regressions/Struct#set:v0 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $function-inline-regressions/Struct#set:v0 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $function-inline-regressions/Struct#set:v1 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $function-inline-regressions/Struct#set:v1 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $function-inline-regressions/Struct#set:v2 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $function-inline-regressions/Struct#set:v2 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $function-inline-regressions/foo (type $i32_i32_i32_=>_i32) (param $v0 i32) (param $v1 i32) (param $v2 i32) (result i32) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index e2c1ef9e5b..c9e654eabb 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -44,14 +44,14 @@ (export "test" (func $getter-call/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -63,9 +63,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -73,7 +77,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -125,7 +129,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -134,11 +138,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -157,7 +165,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -179,7 +187,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -200,6 +208,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -223,12 +239,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -247,7 +263,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -271,7 +287,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -350,36 +366,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -404,7 +436,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -504,10 +536,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -598,7 +630,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -651,7 +683,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -673,7 +705,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -681,7 +713,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -708,7 +740,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -716,7 +748,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -731,7 +763,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -926,7 +958,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1036,7 +1068,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1290,7 +1322,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1313,7 +1345,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1753,7 +1785,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1930,7 +1962,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2000,7 +2032,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2012,13 +2044,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2062,7 +2094,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2101,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2189,9 +2221,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index b460377f18..0566638327 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -997,107 +997,11 @@ end end ) - (func $getter-call/C#get:x~anonymous|0 (type $none_=>_i32) (result i32) - i32.const 42 - ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $~lib/function/Function<%28%29=>i32> - block $getter-call/C - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - local.get $0 - i32.load $0 offset=4 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34284 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - ) - (func $getter-call/C#constructor (type $none_=>_i32) (result i32) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 1516 - 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 $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1149,7 +1053,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1157,7 +1061,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1189,7 +1093,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1197,7 +1101,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1224,12 +1128,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1239,7 +1143,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1248,19 +1152,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1288,18 +1192,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1324,48 +1228,140 @@ i32.const 0 i32.const 0 memory.fill $0 - local.get $2 local.get $0 + ) + (func $getter-call/C#get:x~anonymous|0 (type $none_=>_i32) (result i32) + i32.const 42 + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $~lib/function/Function<%28%29=>i32> + block $getter-call/C + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + local.get $0 + i32.load $0 offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + memory.size $0 + i32.const 16 + i32.shl + i32.const 34284 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace ) (func $getter-call/test (type $none_=>_i32) (result i32) (local $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 1516 - i32.lt_s - if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store $0 + i32.const 1456 + i32.load $0 + call_indirect $0 (type $none_=>_i32) + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 42 + return end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - call $getter-call/C#constructor - i32.store $0 - i32.const 1456 - i32.load $0 - call_indirect $0 (type $none_=>_i32) - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 42 + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 5cb5b37f8c..8b2f6bd6c9 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -21,26 +21,42 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -65,7 +81,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -165,10 +181,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -259,7 +275,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -312,7 +328,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -334,7 +350,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -342,7 +358,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -369,7 +385,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -377,7 +393,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -392,7 +408,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -587,7 +603,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -697,7 +713,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1079,7 +1095,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1256,7 +1272,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1326,7 +1342,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1338,13 +1354,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -1388,7 +1404,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1450,7 +1466,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1473,7 +1489,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1494,7 +1510,7 @@ i32.const 4 i32.add local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1524,7 +1540,7 @@ call $~lib/rt/tlsf/prepareSize local.set $payloadSize local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo local.get $blockInfo i32.const 3 @@ -1551,7 +1567,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1559,7 +1575,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index d714f1cde3..303a24c7df 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -60,14 +60,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -79,9 +79,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -89,7 +93,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -141,7 +145,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -150,11 +154,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -173,7 +181,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -195,7 +203,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -216,6 +224,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -239,12 +255,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -263,7 +279,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -287,7 +303,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -366,36 +382,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -420,7 +452,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -520,10 +552,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -614,7 +646,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -667,7 +699,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -689,7 +721,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -697,7 +729,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -724,7 +756,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -732,7 +764,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -747,7 +779,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -942,7 +974,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1052,7 +1084,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1306,7 +1338,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1329,7 +1361,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1769,7 +1801,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1946,7 +1978,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2016,7 +2048,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2028,13 +2060,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2078,7 +2110,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2117,14 +2149,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2262,11 +2294,19 @@ end end ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2277,7 +2317,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2288,11 +2328,19 @@ drop local.get $value ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2303,7 +2351,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2314,11 +2362,19 @@ drop local.get $value ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2329,7 +2385,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2340,11 +2396,19 @@ drop local.get $value ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2355,7 +2419,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2366,9 +2430,13 @@ drop local.get $value ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2382,11 +2450,31 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String|null>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String|null>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2397,7 +2485,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2408,9 +2496,13 @@ drop local.get $value ) - (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -2424,6 +2516,10 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $start:infer-array (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -3050,11 +3146,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3063,11 +3163,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3076,11 +3180,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3089,11 +3197,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3102,6 +3214,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -3110,11 +3226,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -3143,7 +3259,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3152,6 +3268,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array<~lib/string/String|null>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String|null>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -3160,11 +3280,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ i32.const 2 i32.shl i32.add @@ -3193,7 +3313,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String|null>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3202,11 +3322,15 @@ local.get $1 call $~lib/array/Array<~lib/string/String|null>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3215,6 +3339,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array<~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -3223,11 +3351,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -3256,7 +3384,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3447,7 +3575,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -3459,7 +3587,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3493,7 +3621,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ i32.ge_u if i32.const 256 @@ -3505,7 +3633,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.get $index i32.const 2 i32.shl @@ -3539,7 +3667,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if i32.const 256 @@ -3551,7 +3679,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 9a348a141f..01087ea2ed 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -2015,66 +2015,90 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + (func $~lib/array/Array#__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $invalid - block $infer-array/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.load $0 offset=4 + local.tee $1 + local.get $0 + i32.load $0 offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $1 + i32.load $0 + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array<~lib/string/String|null> + block $~lib/array/Array + block $infer-array/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $~lib/array/Array $~lib/array/Array<~lib/string/String|null> $folding-inner0 $~lib/array/Array<~lib/array/Array> $invalid + end + return + end + return + end local.get $0 - i32.const 8 - i32.sub i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner1 $invalid + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end return end + local.get $0 + call $~lib/array/Array#__visit return end + local.get $0 + call $~lib/array/Array#__visit return end - unreachable - end - local.get $0 - i32.load $0 offset=4 - local.tee $1 - local.get $0 - i32.load $0 offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $0 - i32.load $0 - local.tee $0 - if local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + call $~lib/array/Array#__visit + return end - return + unreachable end local.get $0 i32.load $0 diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index d24b47a6e8..505ed190e1 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -71,6 +71,14 @@ i32.const 0 end ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#reduce (type $i32_i32_i32_=>_i32) (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) @@ -83,14 +91,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -102,7 +110,7 @@ if local.get $acc local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -128,19 +136,19 @@ (func $infer-generic/inferDefault (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $infer-generic/Ref#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $infer-generic/Ref#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -152,9 +160,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -162,7 +174,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -214,7 +226,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -223,11 +235,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -246,7 +262,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -268,7 +284,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -289,6 +305,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -312,12 +336,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -336,7 +360,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -360,7 +384,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -439,36 +463,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -493,7 +533,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -593,10 +633,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -687,7 +727,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -740,7 +780,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -762,7 +802,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -770,7 +810,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -797,7 +837,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -805,7 +845,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -820,7 +860,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1015,7 +1055,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1125,7 +1165,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1379,7 +1419,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1402,7 +1442,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1842,7 +1882,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2019,7 +2059,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2089,7 +2129,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2101,13 +2141,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2151,7 +2191,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2190,14 +2230,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2290,23 +2330,9 @@ local.get $fn call $infer-generic/inferEncapsulatedFunctionMixed ) - (func $infer-generic/inferAssert (type $i32_=>_none) (param $v i32) - (local $1 i32) - local.get $v - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 32 - i32.const 75 - i32.const 3 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end + (func $infer-generic/Ref#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 - drop ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -2335,11 +2361,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2348,9 +2378,13 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2359,9 +2393,13 @@ local.get $1 call $~lib/function/Function<%28bool%2Cf32%2Ci32%2C~lib/array/Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>f64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>f64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2370,9 +2408,13 @@ local.get $1 call $~lib/function/Function<%28%29=>f64>#__visit ) - (func $~lib/function/Function<%28f32%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%29=>f64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%29=>f64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2381,9 +2423,13 @@ local.get $1 call $~lib/function/Function<%28f32%29=>f64>#__visit ) - (func $~lib/function/Function<%28f32%2Ci32%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Ci32%29=>f64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Ci32%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Ci32%29=>f64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2567,6 +2613,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $infer-generic/inferAssert (type $i32_=>_none) (param $v i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $v + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 32 + i32.const 75 + i32.const 3 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 + local.get $2 + call $infer-generic/Ref#get:x + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $infer-generic/Ref#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 5e8c758c00..7fba61ff0e 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1463,41 +1463,64 @@ local.get $0 ) (func $export:infer-generic/inferAssert (type $i32_=>_none) (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 1692 - i32.lt_s - if - i32.const 34480 - i32.const 34528 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1692 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1692 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 75 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store $0 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 75 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $0 + i32.load $0 + drop + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load $0 - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34480 + i32.const 34528 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 624cfcc0f5..2ad7b5bcbc 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -271,19 +271,19 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $inlining/Baz#set:b (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $inlining/Baz#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -295,9 +295,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -305,7 +309,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -357,7 +361,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -366,11 +370,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -389,7 +397,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -411,7 +419,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -432,6 +440,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -455,12 +471,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -479,7 +495,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -503,7 +519,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -582,36 +598,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -636,7 +668,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -736,10 +768,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -830,7 +862,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -883,7 +915,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -905,7 +937,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -913,7 +945,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -940,7 +972,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -948,7 +980,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -963,7 +995,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1158,7 +1190,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1268,7 +1300,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1522,7 +1554,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1545,7 +1577,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1985,7 +2017,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2162,7 +2194,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2232,7 +2264,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2244,13 +2276,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2294,7 +2326,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2333,14 +2365,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2395,21 +2427,37 @@ memory.fill $0 local.get $ptr ) - (func $inlining/Baz#set:a (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $inlining/Baz#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $inlining/Bar#set:e (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $inlining/Bar#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $inlining/Bar#set:d (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $inlining/Bar#set:d (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $inlining/Baz#get:a (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $inlining/Baz#get:b (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $inlining/Bar#get:d (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $inlining/Bar#get:e (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $inlining/test_ctor (type $none_=>_none) (local $this i32) (local $f i32) @@ -2482,7 +2530,7 @@ local.tee $bar i32.store $0 offset=8 local.get $bar - i32.load $0 + call $inlining/Baz#get:a i32.const 1 i32.eq i32.eqz @@ -2495,7 +2543,7 @@ unreachable end local.get $bar - i32.load $0 offset=4 + call $inlining/Baz#get:b i32.const 2 i32.eq i32.eqz @@ -2508,7 +2556,7 @@ unreachable end local.get $bar - i32.load $0 offset=8 + call $inlining/Bar#get:d i32.const 3 i32.eq i32.eqz @@ -2521,7 +2569,7 @@ unreachable end local.get $bar - i32.load $0 offset=12 + call $inlining/Bar#get:e i32.const 4 i32.eq i32.eqz @@ -2591,9 +2639,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/instanceof-class.debug.wat b/tests/compiler/instanceof-class.debug.wat index 35fce2dd75..874644471d 100644 --- a/tests/compiler/instanceof-class.debug.wat +++ b/tests/compiler/instanceof-class.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -63,9 +63,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -73,7 +77,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -125,7 +129,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -134,11 +138,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -157,7 +165,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -179,7 +187,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -200,6 +208,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -223,12 +239,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -247,7 +263,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -271,7 +287,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -350,36 +366,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -404,7 +436,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -504,10 +536,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -598,7 +630,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -651,7 +683,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -673,7 +705,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -681,7 +713,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -708,7 +740,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -716,7 +748,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -731,7 +763,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -926,7 +958,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1036,7 +1068,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1290,7 +1322,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1313,7 +1345,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1753,7 +1785,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1930,7 +1962,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2000,7 +2032,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2012,13 +2044,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2062,7 +2094,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2101,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2211,13 +2243,21 @@ i32.eqz drop ) + (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) (local $id i32) (local $rttiBase i32) local.get $ptr i32.const 20 i32.sub - i32.load $0 offset=12 + call $~lib/rt/common/OBJECT#get:rtId local.set $id global.get $~lib/rt/__rtti_base local.set $rttiBase @@ -2241,7 +2281,7 @@ i32.const 8 i32.mul i32.add - i32.load $0 offset=4 + call $~lib/shared/typeinfo/Typeinfo#get:base local.tee $id br_if $do-loop|0 end diff --git a/tests/compiler/instanceof-class.release.wat b/tests/compiler/instanceof-class.release.wat index da88121b8b..f93bd10e79 100644 --- a/tests/compiler/instanceof-class.release.wat +++ b/tests/compiler/instanceof-class.release.wat @@ -1429,7 +1429,7 @@ i32.load $0 i32.le_u if - loop $do-loop|011 + loop $do-loop|012 i32.const 1 local.get $0 i32.const 6 @@ -1443,7 +1443,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|011 + br_if $do-loop|012 end end i32.const 0 diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 3b37abaa3f..868cade334 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -63,9 +63,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -73,7 +77,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -125,7 +129,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -134,11 +138,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -157,7 +165,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -179,7 +187,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -200,6 +208,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -223,12 +239,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -247,7 +263,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -271,7 +287,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -350,36 +366,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -404,7 +436,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -504,10 +536,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -598,7 +630,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -651,7 +683,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -673,7 +705,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -681,7 +713,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -708,7 +740,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -716,7 +748,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -731,7 +763,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -926,7 +958,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1036,7 +1068,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1290,7 +1322,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1313,7 +1345,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1753,7 +1785,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1930,7 +1962,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2000,7 +2032,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2012,13 +2044,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2062,7 +2094,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2101,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2231,47 +2263,18 @@ end end ) - (func $issues/1095/Foo#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/1095/Foo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $issues/1095/test (type $i32_=>_none) (param $foo i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $foo - global.get $~lib/memory/__stack_pointer - local.get $foo + (func $issues/1095/Foo#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 - local.tee $1 - i32.store $0 - local.get $1 - if (result i32) - local.get $1 - else - i32.const 464 - i32.const 528 - i32.const 8 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - call $issues/1095/Foo#set:bar - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -2348,6 +2351,81 @@ unreachable end ) + (func $issues/1095/Foo#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 432 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $issues/1095/Foo#set:bar + 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 $issues/1095/test (type $i32_=>_none) (param $foo i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $foo + global.get $~lib/memory/__stack_pointer + local.get $foo + call $issues/1095/Foo#get:bar + local.tee $1 + i32.store $0 offset=4 + local.get $1 + if (result i32) + local.get $1 + else + i32.const 464 + i32.const 528 + i32.const 8 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 + local.get $2 + call $issues/1095/Foo#set:bar + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $start:issues/1095 (type $none_=>_none) (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2388,35 +2466,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $issues/1095/Foo#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 432 - call $issues/1095/Foo#set:bar - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) ) diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 5f6999562c..b0eff835df 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1361,6 +1361,61 @@ i32.store $0 align=1 local.get $0 ) + (func $issues/1095/Foo#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $folding-inner0 block $invalid @@ -1435,7 +1490,7 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace local.get $0 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1444,27 +1499,27 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 - i32.store $0 + i32.store $0 offset=4 local.get $0 i32.const 1456 - call $byn-split-outlined-A$~lib/rt/itcms/__link + call $issues/1095/Foo#set:bar global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1473,13 +1528,13 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 local.get $0 i32.load $0 local.tee $1 - i32.store $0 + i32.store $0 offset=4 local.get $1 i32.eqz if @@ -1490,17 +1545,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store $0 + local.get $0 local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $issues/1095/Foo#set:bar global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1535,53 +1587,4 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 656f1dc76b..44b40ca7b0 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -45,24 +45,28 @@ (export "viaThis" (func $issues/1225/viaThis)) (export "memory" (memory $0)) (start $~start) - (func $issues/1225/X#set:viaThis (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/1225/X#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $issues/1225/X#set:viaThis (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $issues/1225/X#set:normal (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/1225/X#set:normal (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -74,9 +78,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -84,7 +92,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -136,7 +144,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -145,11 +153,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -168,7 +180,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -190,7 +202,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -211,6 +223,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -234,12 +254,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -258,7 +278,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -282,7 +302,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -361,36 +381,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -415,7 +451,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -515,10 +551,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -609,7 +645,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -662,7 +698,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -684,7 +720,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -692,7 +728,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -719,7 +755,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -727,7 +763,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -742,7 +778,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -937,7 +973,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1047,7 +1083,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1301,7 +1337,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1324,7 +1360,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1764,7 +1800,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1941,7 +1977,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2011,7 +2047,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2023,13 +2059,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2073,7 +2109,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2112,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2174,17 +2210,17 @@ memory.fill $0 local.get $ptr ) - (func $issues/1225/X#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/1225/X#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $issues/1225/normal (type $none_=>_i32) (result i32) - global.get $issues/1225/x + (func $issues/1225/X#get:normal (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 ) - (func $issues/1225/viaThis (type $none_=>_i32) (result i32) - global.get $issues/1225/x + (func $issues/1225/X#get:viaThis (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 offset=4 ) (func $~lib/rt/itcms/__collect (type $none_=>_none) @@ -2357,6 +2393,54 @@ unreachable end ) + (func $issues/1225/normal (type $none_=>_i32) (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + global.get $issues/1225/x + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $issues/1225/X#get:normal + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $issues/1225/viaThis (type $none_=>_i32) (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + global.get $issues/1225/x + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + call $issues/1225/X#get:viaThis + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $issues/1225/X#constructor (type $i32_i32_=>_i32) (param $this i32) (param $x i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -2388,7 +2472,7 @@ call $issues/1225/X#set:viaThis local.get $this local.get $this - i32.load $0 offset=8 + call $issues/1225/X#get:x call $issues/1225/X#set:viaThis local.get $this local.get $x diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 250424521a..43cbb091a3 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_none (func_subtype func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) @@ -1003,71 +1003,11 @@ end end ) - (func $issues/1225/normal (type $none_=>_i32) (result i32) - global.get $issues/1225/x - i32.load $0 - ) - (func $issues/1225/viaThis (type $none_=>_i32) (result i32) - global.get $issues/1225/x - i32.load $0 offset=4 - ) - (func $start:issues/1225 (type $none_=>_none) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34292 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1102,13 +1042,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1119,7 +1059,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1127,7 +1067,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1159,7 +1099,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1167,7 +1107,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1194,12 +1134,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1209,7 +1149,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1218,19 +1158,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1258,18 +1198,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1294,8 +1234,93 @@ i32.const 0 i32.const 12 memory.fill $0 - local.get $2 local.get $0 + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $issues/1225/X + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 i32) + memory.size $0 + i32.const 16 + i32.shl + i32.const 34292 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 local.get $0 i32.const 4 @@ -1319,8 +1344,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $issues/1225/x - global.get $issues/1225/x - i32.load $0 + call $issues/1225/normal i32.const 4 i32.ne if @@ -1331,8 +1355,7 @@ call $~lib/builtins/abort unreachable end - global.get $issues/1225/x - i32.load $0 offset=4 + call $issues/1225/viaThis i32.const 4 i32.ne if @@ -1379,37 +1402,75 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $issues/1225/X - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return + (func $issues/1225/normal (type $none_=>_i32) (result i32) + (local $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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + global.get $issues/1225/x + local.tee $1 + i32.store $0 + local.get $1 + i32.load $0 + local.set $1 + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~start (type $none_=>_none) - call $start:issues/1225 + (func $issues/1225/viaThis (type $none_=>_i32) (result i32) + (local $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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + global.get $issues/1225/x + local.tee $1 + i32.store $0 + local.get $1 + i32.load $0 offset=4 + local.set $1 + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index b3fbc674e0..d550000a9d 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -46,14 +46,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -65,9 +65,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -75,7 +79,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -127,7 +131,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -136,11 +140,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -159,7 +167,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -181,7 +189,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -202,6 +210,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -225,12 +241,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -249,7 +265,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -273,7 +289,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -352,36 +368,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -406,7 +438,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -506,10 +538,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -600,7 +632,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -653,7 +685,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -675,7 +707,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -683,7 +715,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -710,7 +742,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -718,7 +750,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -733,7 +765,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -928,7 +960,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1038,7 +1070,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1292,7 +1324,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1315,7 +1347,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1755,7 +1787,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1932,7 +1964,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2002,7 +2034,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2014,13 +2046,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2064,7 +2096,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2103,14 +2135,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2233,35 +2265,51 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $issues/1699/MultiAssignmentTest#set:test (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/1699/MultiAssignmentTest#set:test (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2273,7 +2321,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2290,7 +2338,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2298,7 +2346,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2319,7 +2367,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2341,7 +2389,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2403,9 +2451,13 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2422,7 +2474,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2456,7 +2508,7 @@ ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $start:issues/1699 (type $none_=>_none) memory.size $0 @@ -2504,6 +2556,10 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2512,11 +2568,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -2545,7 +2601,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2851,7 +2907,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -2863,7 +2919,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index b38fbb3939..776c078245 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -1,8 +1,8 @@ (module (type $none_=>_i32 (func_subtype (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32 i32) (result i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -41,11 +41,15 @@ call $issues/1714/bar return ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 3f5afab991..43323036e8 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -48,14 +48,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -67,9 +67,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -77,7 +81,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -129,7 +133,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -138,11 +142,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -161,7 +169,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -183,7 +191,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -204,6 +212,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -227,12 +243,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -251,7 +267,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -275,7 +291,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -354,36 +370,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -408,7 +440,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -508,10 +540,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -602,7 +634,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -655,7 +687,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -677,7 +709,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -685,7 +717,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -712,7 +744,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -720,7 +752,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -735,7 +767,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -930,7 +962,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1040,7 +1072,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1294,7 +1326,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1317,7 +1349,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1757,7 +1789,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1934,7 +1966,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2004,7 +2036,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2016,13 +2048,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2066,7 +2098,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2105,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2167,11 +2199,15 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index d49d749267..19a4109334 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -42,14 +42,14 @@ (export "test" (func $issues/2322/index/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -61,9 +61,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -71,7 +75,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -123,7 +127,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -132,11 +136,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -155,7 +163,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -177,7 +185,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -198,6 +206,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -221,12 +237,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -245,7 +261,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -269,7 +285,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -348,36 +364,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -402,7 +434,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -502,10 +534,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -596,7 +628,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -649,7 +681,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -671,7 +703,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -679,7 +711,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -706,7 +738,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -714,7 +746,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -729,7 +761,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -924,7 +956,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1034,7 +1066,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1288,7 +1320,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1311,7 +1343,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1751,7 +1783,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1928,7 +1960,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1998,7 +2030,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2010,13 +2042,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2060,7 +2092,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2099,14 +2131,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2161,9 +2193,9 @@ memory.fill $0 local.get $ptr ) - (func $issues/2322/lib/Wrapper#set:v (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $issues/2322/lib/Wrapper#set:v (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) (func $issues/2322/lib/test (type $i32_=>_none) (param $t i32) diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index a7b721c30f..54073accf3 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1,10 +1,10 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -993,6 +993,238 @@ end end ) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 3 + i32.store $0 offset=12 + local.get $0 + i32.const 4 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.store $0 align=1 + local.get $0 + ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid block $issues/2322/lib/Wrapper @@ -1058,10 +1290,6 @@ ) (func $issues/2322/index/test (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1084,246 +1312,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $0 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $3 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $0 - local.get $2 - i32.gt_s - select - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $4 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $4 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 3 - i32.store $0 offset=12 - local.get $0 - i32.const 4 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load $0 offset=8 - local.set $3 local.get $0 - global.get $~lib/rt/itcms/white - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $3 - i32.store $0 offset=8 - local.get $3 - local.get $0 - local.get $3 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $2 - i32.const 0 - i32.store $0 align=1 - local.get $1 - local.get $2 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 local.get $0 i32.const 0 - i32.store $0 offset=20 + i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index de3a63f3c0..241d198747 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -67,14 +67,14 @@ local.get $b end ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -86,9 +86,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -96,7 +100,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -148,7 +152,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -157,11 +161,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -180,7 +188,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -202,7 +210,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -223,6 +231,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -246,12 +262,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -270,7 +286,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -294,7 +310,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -373,36 +389,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -427,7 +459,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -527,10 +559,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -621,7 +653,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -674,7 +706,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -696,7 +728,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -704,7 +736,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -731,7 +763,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -739,7 +771,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -754,7 +786,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -949,7 +981,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1059,7 +1091,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1313,7 +1345,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1336,7 +1368,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1776,7 +1808,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1953,7 +1985,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2023,7 +2055,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2035,13 +2067,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2085,7 +2117,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2124,14 +2156,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 8e54ca9c12..292d6f57e6 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -994,182 +994,11 @@ end end ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $logical/Obj - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $logical/Obj $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - (local $0 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 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34292 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store $0 - i32.const 1224 - i32.const 1216 - i32.store $0 - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store $0 - i32.const 1256 - i32.const 1248 - i32.store $0 - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store $0 - i32.const 1400 - i32.const 1392 - i32.store $0 - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $logical/Obj#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1056 - i32.const 87 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $logical/Obj#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1056 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 34292 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - 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 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $logical/Obj#constructor (type $none_=>_i32) (result i32) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1221,7 +1050,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1229,7 +1058,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1261,7 +1090,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1269,7 +1098,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1296,12 +1125,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1311,7 +1140,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1320,19 +1149,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1360,18 +1189,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1396,8 +1225,183 @@ i32.const 0 i32.const 0 memory.fill $0 - local.get $2 local.get $0 + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $logical/Obj + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $logical/Obj $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34292 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store $0 + i32.const 1224 + i32.const 1216 + i32.store $0 + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store $0 + i32.const 1256 + i32.const 1248 + i32.store $0 + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store $0 + i32.const 1400 + i32.const 1392 + i32.store $0 + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $logical/Obj#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $logical/Obj#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 34292 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + 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 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $logical/Obj#constructor (type $none_=>_i32) (result i32) + (local $0 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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index c52e2dfc35..a033a20fae 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -63,9 +63,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -73,7 +77,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -125,7 +129,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -134,11 +138,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -157,7 +165,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -179,7 +187,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -200,6 +208,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -223,12 +239,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -247,7 +263,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -271,7 +287,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -350,36 +366,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -404,7 +436,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -504,10 +536,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -598,7 +630,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -651,7 +683,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -673,7 +705,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -681,7 +713,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -708,7 +740,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -716,7 +748,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -731,7 +763,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -926,7 +958,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1036,7 +1068,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1290,7 +1322,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1313,7 +1345,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1753,7 +1785,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1930,7 +1962,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2000,7 +2032,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2012,13 +2044,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2062,7 +2094,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2101,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2190,13 +2222,21 @@ call $managed-cast/Animal#tame end ) + (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) (local $id i32) (local $rttiBase i32) local.get $ptr i32.const 20 i32.sub - i32.load $0 offset=12 + call $~lib/rt/common/OBJECT#get:rtId local.set $id global.get $~lib/rt/__rtti_base local.set $rttiBase @@ -2220,7 +2260,7 @@ i32.const 8 i32.mul i32.add - i32.load $0 offset=4 + call $~lib/shared/typeinfo/Typeinfo#get:base local.tee $id br_if $do-loop|0 end diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 1e60cab21e..1668a79b08 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1439,7 +1439,7 @@ local.tee $1 i64.const 0 i64.store $0 - block $__inlined_func$~lib/rt/__instanceof15 (result i32) + block $__inlined_func$~lib/rt/__instanceof0 (result i32) local.get $0 i32.eqz if @@ -1462,12 +1462,12 @@ i32.load $0 i32.le_u if - loop $do-loop|017 + loop $do-loop|03 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof15 + br_if $__inlined_func$~lib/rt/__instanceof0 drop local.get $1 i32.const 3 @@ -1476,7 +1476,7 @@ i32.add i32.load $0 offset=4 local.tee $1 - br_if $do-loop|017 + br_if $do-loop|03 end end i32.const 0 @@ -1515,7 +1515,7 @@ local.tee $2 i32.const 0 i32.store $0 - block $__inlined_func$~lib/rt/__instanceof19 (result i32) + block $__inlined_func$~lib/rt/__instanceof6 (result i32) local.get $0 i32.const 20 i32.sub @@ -1525,12 +1525,12 @@ i32.load $0 i32.le_u if - loop $do-loop|021 + loop $do-loop|09 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof19 + br_if $__inlined_func$~lib/rt/__instanceof6 drop local.get $1 i32.const 3 @@ -1539,7 +1539,7 @@ i32.add i32.load $0 offset=4 local.tee $1 - br_if $do-loop|021 + br_if $do-loop|09 end end i32.const 0 @@ -1579,7 +1579,7 @@ i32.store $0 local.get $0 if - block $__inlined_func$~lib/rt/__instanceof24 (result i32) + block $__inlined_func$~lib/rt/__instanceof13 (result i32) local.get $0 i32.const 20 i32.sub @@ -1589,12 +1589,12 @@ i32.load $0 i32.le_u if - loop $do-loop|026 + loop $do-loop|016 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof24 + br_if $__inlined_func$~lib/rt/__instanceof13 drop local.get $1 i32.const 3 @@ -1603,7 +1603,7 @@ i32.add i32.load $0 offset=4 local.tee $1 - br_if $do-loop|026 + br_if $do-loop|016 end end i32.const 0 diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index baeab65426..d3eca69e9c 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -47,14 +47,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -66,9 +66,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -76,7 +80,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -128,7 +132,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -137,11 +141,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -160,7 +168,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -182,7 +190,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -203,6 +211,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -226,12 +242,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -250,7 +266,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -274,7 +290,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -353,36 +369,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -407,7 +439,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -507,10 +539,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -601,7 +633,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -654,7 +686,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -676,7 +708,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -684,7 +716,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -711,7 +743,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -719,7 +751,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -734,7 +766,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -929,7 +961,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1039,7 +1071,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1293,7 +1325,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1316,7 +1348,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1756,7 +1788,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1933,7 +1965,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2003,7 +2035,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2015,13 +2047,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2065,7 +2097,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2104,14 +2136,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index 6776ce5e75..7eeda1683c 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -1,17 +1,20 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_f64_=>_none (func_subtype (param i32 f64) func)) + (type $i32_=>_f64 (func_subtype (param i32) (result f64) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) + (type $i32_=>_i64 (func_subtype (param i32) (result i64) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32 i32) (result i32) func)) (type $i32_f32_=>_none (func_subtype (param i32 f32) func)) + (type $i32_=>_f32 (func_subtype (param i32) (result f32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -53,40 +56,48 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $object-literal/Managed#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/Managed#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor i32.and ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -105,7 +116,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -127,7 +138,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -157,6 +168,14 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -180,12 +199,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -204,7 +223,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -228,7 +247,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -325,12 +344,12 @@ end end ) - (func $object-literal/Managed#set:baz (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/Managed#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) @@ -382,7 +401,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -441,36 +460,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -495,7 +530,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -595,10 +630,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -689,7 +724,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -742,7 +777,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -764,7 +799,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -772,7 +807,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -799,7 +834,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -807,7 +842,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -822,7 +857,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1017,7 +1052,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1127,7 +1162,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1381,7 +1416,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1404,7 +1439,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1844,7 +1879,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2021,7 +2056,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2091,7 +2126,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2103,13 +2138,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2153,7 +2188,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2192,14 +2227,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2254,11 +2289,23 @@ memory.fill $0 local.get $ptr ) + (func $object-literal/Managed#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $object-literal/Managed#get:baz (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2410,14 +2457,14 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $object-literal/Unmanaged#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/Unmanaged#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $object-literal/Unmanaged#set:baz (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/Unmanaged#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $object-literal/Unmanaged#constructor (type $i32_=>_i32) (param $this i32) (result i32) @@ -2436,79 +2483,143 @@ call $object-literal/Unmanaged#set:baz local.get $this ) - (func $object-literal/OmittedTypes#set:int32 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/Unmanaged#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $object-literal/Unmanaged#get:baz (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $object-literal/OmittedTypes#set:int32 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $object-literal/OmittedTypes#set:uint32 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:uint32 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $object-literal/OmittedTypes#set:int64 (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:int64 (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=8 ) - (func $object-literal/OmittedTypes#set:uint64 (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:uint64 (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=16 ) - (func $object-literal/OmittedTypes#set:float32 (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:float32 (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 offset=24 ) - (func $object-literal/OmittedTypes#set:float64 (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:float64 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=32 ) - (func $object-literal/OmittedTypes#set:int8 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:int8 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=40 ) - (func $object-literal/OmittedTypes#set:uint8 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:uint8 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=41 ) - (func $object-literal/OmittedTypes#set:int16 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:int16 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=42 ) - (func $object-literal/OmittedTypes#set:uint16 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:uint16 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=44 ) - (func $object-literal/OmittedTypes#set:intsize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:intsize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=48 ) - (func $object-literal/OmittedTypes#set:uintsize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:uintsize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=52 ) - (func $object-literal/OmittedTypes#set:alias (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:alias (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=56 ) - (func $object-literal/OmittedTypes#set:isTrue (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedTypes#set:isTrue (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=64 ) + (func $object-literal/OmittedTypes#get:int32 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $object-literal/OmittedTypes#get:uint32 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $object-literal/OmittedTypes#get:int64 (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 offset=8 + ) + (func $object-literal/OmittedTypes#get:uint64 (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 offset=16 + ) + (func $object-literal/OmittedTypes#get:float32 (type $i32_=>_f32) (param $this i32) (result f32) + local.get $this + f32.load $0 offset=24 + ) + (func $object-literal/OmittedTypes#get:float64 (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 offset=32 + ) + (func $object-literal/OmittedTypes#get:int8 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 offset=40 + ) + (func $object-literal/OmittedTypes#get:uint8 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 offset=41 + ) + (func $object-literal/OmittedTypes#get:int16 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=42 + ) + (func $object-literal/OmittedTypes#get:uint16 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_u $0 offset=44 + ) + (func $object-literal/OmittedTypes#get:intsize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=48 + ) + (func $object-literal/OmittedTypes#get:uintsize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=52 + ) + (func $object-literal/OmittedTypes#get:alias (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 offset=56 + ) + (func $object-literal/OmittedTypes#get:isTrue (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 offset=64 + ) (func $object-literal/testOmittedTypes (type $i32_=>_none) (param $omitted i32) local.get $omitted - i32.load $0 + call $object-literal/OmittedTypes#get:int32 i32.const 0 i32.eq i32.eqz @@ -2521,7 +2632,7 @@ unreachable end local.get $omitted - i32.load $0 offset=4 + call $object-literal/OmittedTypes#get:uint32 i32.const 0 i32.eq i32.eqz @@ -2534,7 +2645,7 @@ unreachable end local.get $omitted - i64.load $0 offset=8 + call $object-literal/OmittedTypes#get:int64 i64.const 0 i64.eq i32.eqz @@ -2547,7 +2658,7 @@ unreachable end local.get $omitted - i64.load $0 offset=16 + call $object-literal/OmittedTypes#get:uint64 i64.const 0 i64.eq i32.eqz @@ -2560,7 +2671,7 @@ unreachable end local.get $omitted - f32.load $0 offset=24 + call $object-literal/OmittedTypes#get:float32 f32.const 0 f32.eq i32.eqz @@ -2573,7 +2684,7 @@ unreachable end local.get $omitted - f64.load $0 offset=32 + call $object-literal/OmittedTypes#get:float64 f64.const 0 f64.eq i32.eqz @@ -2586,7 +2697,8 @@ unreachable end local.get $omitted - i32.load8_s $0 offset=40 + call $object-literal/OmittedTypes#get:int8 + i32.extend8_s i32.const 0 i32.eq i32.eqz @@ -2599,7 +2711,9 @@ unreachable end local.get $omitted - i32.load8_u $0 offset=41 + call $object-literal/OmittedTypes#get:uint8 + i32.const 255 + i32.and i32.const 0 i32.eq i32.eqz @@ -2612,7 +2726,8 @@ unreachable end local.get $omitted - i32.load16_s $0 offset=42 + call $object-literal/OmittedTypes#get:int16 + i32.extend16_s i32.const 0 i32.eq i32.eqz @@ -2625,7 +2740,9 @@ unreachable end local.get $omitted - i32.load16_u $0 offset=44 + call $object-literal/OmittedTypes#get:uint16 + i32.const 65535 + i32.and i32.const 0 i32.eq i32.eqz @@ -2638,7 +2755,7 @@ unreachable end local.get $omitted - i32.load $0 offset=48 + call $object-literal/OmittedTypes#get:intsize i32.const 0 i32.eq i32.eqz @@ -2651,7 +2768,7 @@ unreachable end local.get $omitted - i32.load $0 offset=52 + call $object-literal/OmittedTypes#get:uintsize i32.const 0 i32.eq i32.eqz @@ -2664,7 +2781,7 @@ unreachable end local.get $omitted - f64.load $0 offset=56 + call $object-literal/OmittedTypes#get:alias f64.const 0 f64.eq i32.eqz @@ -2677,7 +2794,7 @@ unreachable end local.get $omitted - i32.load8_u $0 offset=64 + call $object-literal/OmittedTypes#get:isTrue i32.const 0 i32.ne i32.const 0 @@ -2692,107 +2809,159 @@ unreachable end ) - (func $object-literal/MixedOmitted#set:simpleType (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/MixedOmitted#set:simpleType (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $object-literal/MixedOmitted#set:complexType (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/MixedOmitted#set:complexType (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/MixedOmitted#set:anotherSimpleType (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $object-literal/MixedOmitted#set:anotherSimpleType (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=8 ) - (func $object-literal/OmittedFoo#set:quux (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $1 + (func $object-literal/MixedOmitted#get:simpleType (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $object-literal/MixedOmitted#get:complexType (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $object-literal/MixedOmitted#get:anotherSimpleType (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 offset=8 + ) + (func $object-literal/OmittedFoo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:quuz (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=12 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=4 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:corge (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=16 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:quux (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=8 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:grault (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=20 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:quuz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=12 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:garply (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=24 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:corge (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=16 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:waldo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=28 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:grault (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=20 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:fred (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=32 - ) - (func $object-literal/OmittedFoo#set:bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:garply (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=24 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:baz (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=4 - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:waldo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=28 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:qux (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $object-literal/OmittedFoo#set:fred (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=32 + ) + (func $object-literal/OmittedFoo#set:qux (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=36 ) + (func $object-literal/OmittedFoo#get:bar (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $object-literal/OmittedFoo#get:baz (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $object-literal/OmittedFoo#get:quux (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $object-literal/OmittedFoo#get:quuz (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $object-literal/OmittedFoo#get:corge (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $object-literal/OmittedFoo#get:grault (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $object-literal/OmittedFoo#get:garply (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=24 + ) + (func $object-literal/OmittedFoo#get:waldo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=28 + ) + (func $object-literal/OmittedFoo#get:fred (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=32 + ) + (func $object-literal/OmittedFoo#get:qux (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=36 + ) (func $~lib/rt/itcms/__collect (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -3024,7 +3193,7 @@ i64.const 0 i64.store $0 local.get $managed - i32.load $0 + call $object-literal/Managed#get:bar i32.const 123 i32.eq i32.eqz @@ -3037,7 +3206,7 @@ unreachable end local.get $managed - i32.load $0 offset=4 + call $object-literal/Managed#get:baz local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3075,7 +3244,7 @@ i64.const 0 i64.store $0 local.get $unmanaged - i32.load $0 + call $object-literal/Unmanaged#get:bar i32.const 123 i32.eq i32.eqz @@ -3088,7 +3257,7 @@ unreachable end local.get $unmanaged - i32.load $0 offset=4 + call $object-literal/Unmanaged#get:baz local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3128,7 +3297,7 @@ i64.const 0 i64.store $0 local.get $omitted - i32.load $0 + call $object-literal/MixedOmitted#get:simpleType i32.const 0 i32.eq i32.eqz @@ -3141,7 +3310,7 @@ unreachable end local.get $omitted - i32.load $0 offset=4 + call $object-literal/MixedOmitted#get:complexType local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3164,7 +3333,7 @@ unreachable end local.get $omitted - f64.load $0 offset=8 + call $object-literal/MixedOmitted#get:anotherSimpleType f64.const 0 f64.eq i32.eqz @@ -3181,6 +3350,74 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $object-literal/OmittedFoo#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 640 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $object-literal/OmittedFoo#set:bar + local.get $this + i32.const 672 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $object-literal/OmittedFoo#set:baz + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:quux + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:quuz + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:corge + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:grault + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:garply + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:waldo + local.get $this + i32.const 0 + call $object-literal/OmittedFoo#set:fred + local.get $this + i32.const -1 + call $object-literal/OmittedFoo#set:qux + 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 $object-literal/testOmittedFoo (type $i32_=>_none) (param $foo i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3192,7 +3429,7 @@ i64.const 0 i64.store $0 local.get $foo - i32.load $0 + call $object-literal/OmittedFoo#get:bar local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3215,7 +3452,7 @@ unreachable end local.get $foo - i32.load $0 offset=4 + call $object-literal/OmittedFoo#get:baz local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3238,7 +3475,7 @@ unreachable end local.get $foo - i32.load $0 offset=8 + call $object-literal/OmittedFoo#get:quux local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3256,7 +3493,7 @@ unreachable end local.get $foo - i32.load $0 offset=12 + call $object-literal/OmittedFoo#get:quuz local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3274,7 +3511,7 @@ unreachable end local.get $foo - i32.load $0 offset=16 + call $object-literal/OmittedFoo#get:corge local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3292,7 +3529,7 @@ unreachable end local.get $foo - i32.load $0 offset=20 + call $object-literal/OmittedFoo#get:grault local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3310,7 +3547,7 @@ unreachable end local.get $foo - i32.load $0 offset=24 + call $object-literal/OmittedFoo#get:garply local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3328,7 +3565,7 @@ unreachable end local.get $foo - i32.load $0 offset=28 + call $object-literal/OmittedFoo#get:waldo local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -3346,7 +3583,7 @@ unreachable end local.get $foo - i32.load $0 offset=32 + call $object-literal/OmittedFoo#get:fred i32.const 0 i32.eq i32.eqz @@ -3359,7 +3596,7 @@ unreachable end local.get $foo - i32.load $0 offset=36 + call $object-literal/OmittedFoo#get:qux i32.const -1 i32.eq i32.eqz @@ -3384,13 +3621,13 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 28 memory.fill $0 i32.const 128 call $~lib/rt/itcms/initLazy @@ -3419,6 +3656,11 @@ call $object-literal/Managed#set:bar local.get $0 i32.const 32 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=8 + local.get $5 call $object-literal/Managed#set:baz local.get $0 local.set $5 @@ -3438,11 +3680,16 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store $0 + i32.store $0 offset=12 local.get $5 i32.const 0 i32.const 5 call $~lib/string/String#substring + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=12 + local.get $5 call $object-literal/Unmanaged#set:baz local.get $1 call $object-literal/testUnmanaged @@ -3450,49 +3697,49 @@ i32.const 0 call $object-literal/OmittedTypes#constructor local.tee $2 - i32.store $0 offset=8 + i32.store $0 offset=16 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:int32 + i32.store $0 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:uint32 + i32.store $0 offset=4 local.get $2 i64.const 0 - call $object-literal/OmittedTypes#set:int64 + i64.store $0 offset=8 local.get $2 i64.const 0 - call $object-literal/OmittedTypes#set:uint64 + i64.store $0 offset=16 local.get $2 f32.const 0 - call $object-literal/OmittedTypes#set:float32 + f32.store $0 offset=24 local.get $2 f64.const 0 - call $object-literal/OmittedTypes#set:float64 + f64.store $0 offset=32 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:int8 + i32.store8 $0 offset=40 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:uint8 + i32.store8 $0 offset=41 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:int16 + i32.store16 $0 offset=42 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:uint16 + i32.store16 $0 offset=44 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:intsize + i32.store $0 offset=48 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:uintsize + i32.store $0 offset=52 local.get $2 f64.const 0 - call $object-literal/OmittedTypes#set:alias + f64.store $0 offset=56 local.get $2 i32.const 0 - call $object-literal/OmittedTypes#set:isTrue + i32.store8 $0 offset=64 local.get $2 local.set $5 global.get $~lib/memory/__stack_pointer @@ -3504,16 +3751,21 @@ i32.const 0 call $object-literal/MixedOmitted#constructor local.tee $3 - i32.store $0 offset=12 + i32.store $0 offset=20 local.get $3 i32.const 0 call $object-literal/MixedOmitted#set:simpleType local.get $3 i32.const 608 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=8 + local.get $5 call $object-literal/MixedOmitted#set:complexType local.get $3 f64.const 0 - call $object-literal/MixedOmitted#set:anotherSimpleType + f64.store $0 offset=8 local.get $3 local.set $5 global.get $~lib/memory/__stack_pointer @@ -3525,28 +3777,28 @@ i32.const 0 call $object-literal/OmittedFoo#constructor local.tee $4 - i32.store $0 offset=16 + i32.store $0 offset=24 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:quux + i32.store $0 offset=8 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:quuz + i32.store $0 offset=12 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:corge + i32.store $0 offset=16 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:grault + i32.store $0 offset=20 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:garply + i32.store $0 offset=24 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:waldo + i32.store $0 offset=28 local.get $4 i32.const 0 - call $object-literal/OmittedFoo#set:fred + i32.store $0 offset=32 local.get $4 local.set $5 global.get $~lib/memory/__stack_pointer @@ -3558,7 +3810,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3846,62 +4098,4 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $object-literal/OmittedFoo#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 640 - call $object-literal/OmittedFoo#set:bar - local.get $this - i32.const 672 - call $object-literal/OmittedFoo#set:baz - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:quux - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:quuz - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:corge - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:grault - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:garply - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:waldo - local.get $this - i32.const 0 - call $object-literal/OmittedFoo#set:fred - local.get $this - i32.const -1 - call $object-literal/OmittedFoo#set:qux - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) ) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index e4c01e05d2..048a675c9d 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -1738,13 +1738,16 @@ end ) (func $~start (type $none_=>_none) + call $start:object-literal + ) + (func $start:object-literal (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -1755,7 +1758,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 - i32.const 20 + i32.const 28 memory.fill $0 i32.const 1156 i32.const 1152 @@ -1823,6 +1826,9 @@ local.get $1 i32.const 123 i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store $0 offset=8 local.get $1 i32.const 1056 i32.store $0 offset=4 @@ -1903,7 +1909,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 1056 - i32.store $0 + i32.store $0 offset=12 local.get $0 i32.const 4 i32.sub @@ -1991,10 +1997,14 @@ i32.add global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 offset=12 local.get $2 local.get $0 i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2112,7 +2122,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $1 - i32.store $0 offset=8 + i32.store $0 offset=16 local.get $1 i32.const 0 i32.store $0 @@ -2227,7 +2237,7 @@ unreachable end local.get $1 - i32.load8_s $0 offset=40 + i32.load8_u $0 offset=40 if i32.const 0 i32.const 1504 @@ -2247,7 +2257,7 @@ unreachable end local.get $1 - i32.load16_s $0 offset=42 + i32.load16_u $0 offset=42 if i32.const 0 i32.const 1504 @@ -2342,10 +2352,13 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $1 - i32.store $0 offset=12 + i32.store $0 offset=20 local.get $1 i32.const 0 i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1632 + i32.store $0 offset=8 local.get $1 i32.const 1632 i32.store $0 offset=4 @@ -2420,7 +2433,7 @@ global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2429,20 +2442,26 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 40 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 1664 + i32.store $0 offset=4 local.get $1 i32.const 1664 i32.store $0 local.get $1 i32.const 1664 call $byn-split-outlined-A$~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.store $0 offset=4 local.get $1 i32.const 1696 i32.store $0 offset=4 @@ -2474,12 +2493,12 @@ i32.const -1 i32.store $0 offset=36 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 local.get $1 - i32.store $0 offset=16 + i32.store $0 offset=24 local.get $1 i32.const 0 i32.store $0 offset=8 @@ -2721,7 +2740,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 3a206eb947..06d50ba642 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -52,14 +52,14 @@ (func $optional-typeparameters/testDerived (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -71,9 +71,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -81,7 +85,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -133,7 +137,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -142,11 +146,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -165,7 +173,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -187,7 +195,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -208,6 +216,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -231,12 +247,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -255,7 +271,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -279,7 +295,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -358,36 +374,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -412,7 +444,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -512,10 +544,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -606,7 +638,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -659,7 +691,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -681,7 +713,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -689,7 +721,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -716,7 +748,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -724,7 +756,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -739,7 +771,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -934,7 +966,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1044,7 +1076,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1298,7 +1330,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1321,7 +1353,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1761,7 +1793,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1938,7 +1970,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2008,7 +2040,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2020,13 +2052,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2070,7 +2102,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2109,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2239,6 +2271,18 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2247,11 +2291,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -2280,7 +2324,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 1ef72caf3d..5dda1aa380 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) @@ -80,19 +80,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -104,9 +104,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -114,7 +118,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -166,7 +170,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -175,11 +179,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -198,7 +206,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -220,7 +228,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -241,6 +249,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -264,12 +280,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -288,7 +304,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -312,7 +328,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -391,36 +407,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -445,7 +477,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -545,10 +577,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -639,7 +671,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -692,7 +724,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -714,7 +746,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -722,7 +754,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -749,7 +781,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -757,7 +789,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -772,7 +804,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -967,7 +999,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1077,7 +1109,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1331,7 +1363,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1354,7 +1386,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1794,7 +1826,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1971,7 +2003,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2041,7 +2073,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2053,13 +2085,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2103,7 +2135,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2142,14 +2174,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2204,10 +2236,14 @@ memory.fill $0 local.get $ptr ) - (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) + (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $exports/Car#get:doors + ) (func $export/sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index 612470728b..051db59a70 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) @@ -73,19 +73,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -97,9 +97,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -107,7 +111,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -159,7 +163,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -168,11 +172,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -191,7 +199,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -213,7 +221,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -234,6 +242,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -257,12 +273,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -281,7 +297,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -305,7 +321,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -384,36 +400,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -438,7 +470,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -538,10 +570,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -632,7 +664,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -685,7 +717,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -707,7 +739,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -715,7 +747,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -742,7 +774,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -750,7 +782,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -765,7 +797,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -960,7 +992,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1070,7 +1102,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1324,7 +1356,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1347,7 +1379,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1787,7 +1819,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1964,7 +1996,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2034,7 +2066,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2046,13 +2078,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2096,7 +2128,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2135,14 +2167,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2197,10 +2229,14 @@ memory.fill $0 local.get $ptr ) - (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) + (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $exports/Car#get:doors + ) (func $export-default/theDefault (type $none_=>_none) nop ) diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index 39827e791d..7767125b16 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -1025,192 +1025,11 @@ end end ) - (func $export-default/theDefault (type $none_=>_none) - nop - ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $exports/Car - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34340 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store $0 - i32.const 1224 - i32.const 1216 - i32.store $0 - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store $0 - i32.const 1256 - i32.const 1248 - i32.store $0 - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store $0 - i32.const 1400 - i32.const 1392 - i32.store $0 - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store $0 - local.get $0 - i32.load $0 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $exports/Car#constructor (type $none_=>_i32) (result i32) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 1572 - i32.lt_s - if - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1262,7 +1081,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1270,7 +1089,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1302,7 +1121,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1310,7 +1129,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1337,12 +1156,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1352,7 +1171,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1361,19 +1180,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1401,18 +1220,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1436,8 +1255,193 @@ local.tee $0 i32.const 0 i32.store $0 align=1 - local.get $2 local.get $0 + ) + (func $export-default/theDefault (type $none_=>_none) + nop + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34340 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store $0 + i32.const 1224 + i32.const 1216 + i32.store $0 + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store $0 + i32.const 1256 + i32.const 1248 + i32.store $0 + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store $0 + i32.const 1400 + i32.const 1392 + i32.store $0 + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store $0 + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $exports/Car#constructor (type $none_=>_i32) (result i32) + (local $0 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 1572 + i32.lt_s + if + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 local.get $0 i32.const 2 diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 505d557f00..159795d9c5 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -14,6 +14,7 @@ (type $i64_=>_i32 (func_subtype (param i64) (result i32) func)) (type $i32_i64_i32_i32_=>_none (func_subtype (param i32 i64 i32 i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) + (type $i32_=>_i64 (func_subtype (param i32) (result i64) func)) (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) @@ -61,14 +62,14 @@ (export "propertyAccess" (func $resolve-access/propertyAccess)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -80,9 +81,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -90,7 +95,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -142,7 +147,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -151,11 +156,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -174,7 +183,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -196,7 +205,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -217,6 +226,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -240,12 +257,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -264,7 +281,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -288,7 +305,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -367,36 +384,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -421,7 +454,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -521,10 +554,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -615,7 +648,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -668,7 +701,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -690,7 +723,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -698,7 +731,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -725,7 +758,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -733,7 +766,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -748,7 +781,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -943,7 +976,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1053,7 +1086,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1307,7 +1340,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1330,7 +1363,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1770,7 +1803,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1947,7 +1980,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2017,7 +2050,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2029,13 +2062,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2079,7 +2112,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2118,14 +2151,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2263,11 +2296,19 @@ end end ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 256 @@ -2278,7 +2319,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2894,14 +2935,18 @@ local.get $radix call $~lib/util/number/utoa64 ) - (func $resolve-access/Container#set:foo (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $resolve-access/Container#set:foo (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $resolve-access/Container#toU32 (type $i32_=>_i32) (param $this i32) (result i32) + (func $resolve-access/Container#get:foo (type $i32_=>_i64) (param $this i32) (result i64) local.get $this i64.load $0 + ) + (func $resolve-access/Container#toU32 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $resolve-access/Container#get:foo i32.wrap_i64 ) (func $~lib/number/U32#toString (type $i32_i32_=>_i32) (param $this i32) (param $radix i32) (result i32) @@ -2935,11 +2980,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2948,11 +2997,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3352,7 +3405,7 @@ i64.const 1 call $resolve-access/Container#set:foo local.get $container - i64.load $0 + call $resolve-access/Container#get:foo i32.const 10 call $~lib/number/U64#toString local.set $1 diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index bec5d299d8..7b513b722a 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) @@ -109,11 +109,15 @@ i32.const 64 end ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -320,14 +324,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -339,9 +343,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -349,7 +357,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -401,7 +409,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -410,11 +418,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -433,7 +445,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -455,7 +467,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -476,6 +488,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -499,12 +519,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -523,7 +543,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -547,7 +567,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -626,36 +646,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -680,7 +716,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -780,10 +816,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -874,7 +910,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -927,7 +963,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -949,7 +985,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -957,7 +993,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -984,7 +1020,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -992,7 +1028,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1007,7 +1043,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1202,7 +1238,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1312,7 +1348,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1566,7 +1602,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1589,7 +1625,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2029,7 +2065,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2206,7 +2242,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2276,7 +2312,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2288,13 +2324,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2338,7 +2374,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2377,14 +2413,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index 9f95ca3cee..30d9fc1274 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -85,14 +85,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -104,9 +104,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -114,7 +118,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -166,7 +170,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -175,11 +179,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -198,7 +206,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -220,7 +228,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -241,6 +249,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -264,12 +280,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -288,7 +304,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -312,7 +328,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -391,36 +407,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -445,7 +477,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -545,10 +577,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -639,7 +671,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -692,7 +724,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -714,7 +746,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -722,7 +754,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -749,7 +781,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -757,7 +789,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -772,7 +804,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -967,7 +999,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1077,7 +1109,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1331,7 +1363,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1354,7 +1386,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1794,7 +1826,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1971,7 +2003,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2041,7 +2073,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2053,13 +2085,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2103,7 +2135,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2142,14 +2174,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2272,29 +2304,37 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Float32Array#__set (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -2307,7 +2347,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -2318,7 +2358,7 @@ (func $~lib/typedarray/Float32Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -2331,7 +2371,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -3850,11 +3890,15 @@ f64.promote_f32 call $~lib/util/number/dtoa ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -4009,7 +4053,7 @@ (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4020,7 +4064,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add local.get $value @@ -4029,7 +4073,7 @@ (func $~lib/typedarray/Uint8Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4040,7 +4084,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index 148acb25db..bac2a55d30 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -2,8 +2,8 @@ (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_f32_=>_none (func_subtype (param i32 i32 f32) func)) @@ -1574,6 +1574,61 @@ memory.fill $0 local.get $1 ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $~lib/typedarray/Float32Array#__set (type $i32_i32_f32_=>_none) (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 @@ -3531,8 +3586,6 @@ ) (func $~lib/arraybuffer/ArrayBufferView#constructor (type $i32_i32_=>_i32) (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 @@ -3563,7 +3616,7 @@ end local.get $0 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 i32.const 0 i32.store $0 offset=4 @@ -3587,69 +3640,19 @@ i32.const 2 local.get $1 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store $0 offset=4 local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $3 - i32.const 20 - i32.sub - local.tee $4 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $2 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $2 - i32.const 3 - i32.eq - i32.and - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 - local.get $3 + local.get $1 i32.store $0 offset=4 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index b25518e279..26e95e687b 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -128,14 +128,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -147,9 +147,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -157,7 +161,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -209,7 +213,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -218,11 +222,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -241,7 +249,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -263,7 +271,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -284,6 +292,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -307,12 +323,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -331,7 +347,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -355,7 +371,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -434,36 +450,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -488,7 +520,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -588,10 +620,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -682,7 +714,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -735,7 +767,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -757,7 +789,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -765,7 +797,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -792,7 +824,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -800,7 +832,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -815,7 +847,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1010,7 +1042,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1120,7 +1152,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1374,7 +1406,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1397,7 +1429,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1837,7 +1869,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2014,7 +2046,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2084,7 +2116,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2096,13 +2128,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2146,7 +2178,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2185,14 +2217,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2615,11 +2647,15 @@ local.get $radix call $~lib/util/number/itoa32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2797,9 +2833,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index a19940d8c6..3dbe034c48 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -42,14 +42,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -61,9 +61,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -71,7 +75,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -123,7 +127,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -132,11 +136,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -155,7 +163,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -177,7 +185,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -198,6 +206,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -221,12 +237,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -245,7 +261,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -269,7 +285,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -348,36 +364,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -402,7 +434,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -502,10 +534,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -596,7 +628,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -649,7 +681,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -671,7 +703,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -679,7 +711,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -706,7 +738,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -714,7 +746,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -729,7 +761,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -924,7 +956,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1034,7 +1066,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1288,7 +1320,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1311,7 +1343,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1751,7 +1783,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1928,7 +1960,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1998,7 +2030,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2010,13 +2042,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2060,7 +2092,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2099,14 +2131,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 60f37707af..a13c8ca5af 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -999,124 +999,11 @@ end end ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $resolve-new/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-new/Foo $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - (local $0 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 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $resolve-new/Foo#constructor - global.set $resolve-new/foo - call $resolve-new/Foo#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $resolve-new/Foo#constructor (type $none_=>_i32) (result i32) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 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 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1168,7 +1055,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1176,7 +1063,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1208,7 +1095,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1216,7 +1103,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1243,12 +1130,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1258,7 +1145,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1267,19 +1154,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1307,18 +1194,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1343,8 +1230,125 @@ i32.const 0 i32.const 0 memory.fill $0 - local.get $2 local.get $0 + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $resolve-new/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-new/Foo $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34244 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $resolve-new/Foo#constructor + global.set $resolve-new/foo + call $resolve-new/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $resolve-new/Foo#constructor (type $none_=>_i32) (result i32) + (local $0 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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 9b587e6158..5988de9282 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -129,14 +129,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -148,9 +148,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -158,7 +162,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -210,7 +214,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -219,11 +223,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -242,7 +250,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -264,7 +272,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -285,6 +293,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -308,12 +324,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -332,7 +348,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -356,7 +372,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -435,36 +451,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -489,7 +521,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -589,10 +621,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -683,7 +715,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -736,7 +768,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -758,7 +790,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -766,7 +798,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -793,7 +825,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -801,7 +833,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -816,7 +848,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1011,7 +1043,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1121,7 +1153,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1375,7 +1407,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1398,7 +1430,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1838,7 +1870,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2015,7 +2047,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2085,7 +2117,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2097,13 +2129,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2147,7 +2179,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2186,14 +2218,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2616,11 +2648,15 @@ local.get $radix call $~lib/util/number/itoa32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2775,11 +2811,15 @@ (func $resolve-propertyaccess/Class.get:staticProperty (type $none_=>_i32) (result i32) i32.const 7 ) - (func $resolve-propertyaccess/Class#set:instanceField (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $resolve-propertyaccess/Class#set:instanceField (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) + (func $resolve-propertyaccess/Class#get:instanceField (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $resolve-propertyaccess/Class#get:instanceProperty (type $i32_=>_i32) (param $this i32) (result i32) i32.const 8 ) @@ -3127,7 +3167,7 @@ local.tee $0 i32.store $0 offset=8 local.get $0 - i32.load $0 + call $resolve-propertyaccess/Class#get:instanceField i32.const 10 call $~lib/number/I32#toString local.set $1 diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 536d3d4e58..a6e430447f 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -136,14 +136,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -155,9 +155,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -165,7 +169,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -217,7 +221,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -226,11 +230,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -249,7 +257,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -271,7 +279,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -292,6 +300,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -315,12 +331,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -339,7 +355,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -363,7 +379,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -442,36 +458,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -496,7 +528,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -596,10 +628,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -690,7 +722,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -743,7 +775,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -765,7 +797,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -773,7 +805,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -800,7 +832,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -808,7 +840,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -823,7 +855,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1018,7 +1050,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1128,7 +1160,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1382,7 +1414,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1405,7 +1437,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1845,7 +1877,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2022,7 +2054,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2092,7 +2124,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2104,13 +2136,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2154,7 +2186,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2193,14 +2225,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2623,11 +2655,15 @@ local.get $radix call $~lib/util/number/itoa32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -4138,9 +4174,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 8da5c76f78..8dde0c460c 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -129,14 +129,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -148,9 +148,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -158,7 +162,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -210,7 +214,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -219,11 +223,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -242,7 +250,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -264,7 +272,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -285,6 +293,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -308,12 +324,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -332,7 +348,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -356,7 +372,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -435,36 +451,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -489,7 +521,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -589,10 +621,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -683,7 +715,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -736,7 +768,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -758,7 +790,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -766,7 +798,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -793,7 +825,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -801,7 +833,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -816,7 +848,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1011,7 +1043,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1121,7 +1153,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1375,7 +1407,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1398,7 +1430,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1838,7 +1870,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2015,7 +2047,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2085,7 +2117,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2097,13 +2129,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2147,7 +2179,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2186,14 +2218,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2616,11 +2648,15 @@ local.get $radix call $~lib/util/number/itoa32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2868,9 +2904,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index eabfd1fee7..1fb6b79968 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -45,14 +45,14 @@ (export "test" (func $return-unreachable/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -64,9 +64,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -74,7 +78,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -126,7 +130,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -135,11 +139,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -158,7 +166,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -180,7 +188,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -201,6 +209,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -224,12 +240,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -248,7 +264,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -272,7 +288,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -351,36 +367,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -405,7 +437,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -505,10 +537,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -599,7 +631,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -652,7 +684,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -674,7 +706,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -682,7 +714,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -709,7 +741,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -717,7 +749,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -732,7 +764,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -927,7 +959,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1037,7 +1069,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1291,7 +1323,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1314,7 +1346,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1754,7 +1786,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1931,7 +1963,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2001,7 +2033,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2013,13 +2045,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2063,7 +2095,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2102,14 +2134,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2232,28 +2264,28 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $return-unreachable/test (type $i32_=>_i32) (param $a i32) (result i32) @@ -2297,11 +2329,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 4a2f1081d6..2e50dfa1e0 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -45,14 +45,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -64,9 +64,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -74,7 +78,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -126,7 +130,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -135,11 +139,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -158,7 +166,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -180,7 +188,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -201,6 +209,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -224,12 +240,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -248,7 +264,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -272,7 +288,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -351,10 +367,14 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -377,26 +397,38 @@ i32.const 1 global.set $rt/finalize/ran ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -421,7 +453,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -521,10 +553,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -615,7 +647,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -668,7 +700,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -690,7 +722,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -698,7 +730,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -725,7 +757,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -733,7 +765,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -748,7 +780,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -943,7 +975,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1053,7 +1085,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1307,7 +1339,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1330,7 +1362,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1774,7 +1806,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1951,7 +1983,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2021,7 +2053,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2033,13 +2065,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2083,7 +2115,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2122,14 +2154,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 4aab96f3cf..abb8c21cd7 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1,10 +1,10 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) @@ -1012,63 +1012,11 @@ end end ) - (func $start:rt/finalize (type $none_=>_none) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34292 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1524 - i32.lt_s - if - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1103,13 +1051,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1120,7 +1068,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1128,7 +1076,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1160,7 +1108,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1168,7 +1116,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1195,12 +1143,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1210,7 +1158,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1219,19 +1167,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1259,18 +1207,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1295,8 +1243,99 @@ i32.const 0 i32.const 0 memory.fill $0 - local.get $2 local.get $0 + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $rt/finalize/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/finalize/Ref $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + (local $0 i32) + global.get $~started + if + return + end + i32.const 1 + global.set $~started + memory.size $0 + i32.const 16 + i32.shl + i32.const 34292 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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 1524 + i32.lt_s + if + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1348,44 +1387,6 @@ unreachable end ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $rt/finalize/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/finalize/Ref $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:rt/finalize - ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index f191a27101..85b2e0f959 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -1,8 +1,8 @@ (module (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) @@ -22,6 +22,10 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -45,7 +49,7 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $rt/flags/test<~lib/typedarray/Int8Array> (type $i32_=>_none) (param $flags i32) i32.const 3 diff --git a/tests/compiler/rt/instanceof.debug.wat b/tests/compiler/rt/instanceof.debug.wat index 106c40f431..cbe6434bbd 100644 --- a/tests/compiler/rt/instanceof.debug.wat +++ b/tests/compiler/rt/instanceof.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -52,14 +52,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -71,9 +71,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -81,7 +85,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -133,7 +137,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -142,11 +146,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -165,7 +173,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -187,7 +195,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -208,6 +216,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -231,12 +247,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -255,7 +271,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -279,7 +295,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -358,36 +374,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -412,7 +444,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -512,10 +544,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -606,7 +638,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -659,7 +691,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -681,7 +713,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -689,7 +721,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -716,7 +748,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -724,7 +756,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -739,7 +771,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -934,7 +966,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1044,7 +1076,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1298,7 +1330,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1321,7 +1353,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1761,7 +1793,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1938,7 +1970,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2008,7 +2040,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2020,13 +2052,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2070,7 +2102,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2109,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2171,13 +2203,21 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) (local $id i32) (local $rttiBase i32) local.get $ptr i32.const 20 i32.sub - i32.load $0 offset=12 + call $~lib/rt/common/OBJECT#get:rtId local.set $id global.get $~lib/rt/__rtti_base local.set $rttiBase @@ -2201,7 +2241,7 @@ i32.const 8 i32.mul i32.add - i32.load $0 offset=4 + call $~lib/shared/typeinfo/Typeinfo#get:base local.tee $id br_if $do-loop|0 end diff --git a/tests/compiler/rt/instanceof.release.wat b/tests/compiler/rt/instanceof.release.wat index 78da3aaff6..4e7a0ee978 100644 --- a/tests/compiler/rt/instanceof.release.wat +++ b/tests/compiler/rt/instanceof.release.wat @@ -1383,7 +1383,7 @@ i32.store $0 offset=4 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof0 (result i32) + block $__inlined_func$~lib/rt/__instanceof6 (result i32) local.get $0 i32.const 20 i32.sub @@ -1393,12 +1393,12 @@ i32.load $0 i32.le_u if - loop $do-loop|02 + loop $do-loop|09 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof0 + br_if $__inlined_func$~lib/rt/__instanceof6 drop local.get $0 i32.const 3 @@ -1407,7 +1407,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|02 + br_if $do-loop|09 end end i32.const 0 @@ -1429,7 +1429,7 @@ i32.store $0 offset=8 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof3 (result i32) + block $__inlined_func$~lib/rt/__instanceof11 (result i32) local.get $0 i32.const 20 i32.sub @@ -1439,12 +1439,12 @@ i32.load $0 i32.le_u if - loop $do-loop|05 + loop $do-loop|014 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof3 + br_if $__inlined_func$~lib/rt/__instanceof11 drop local.get $0 i32.const 3 @@ -1453,7 +1453,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|05 + br_if $do-loop|014 end end i32.const 0 @@ -1476,7 +1476,7 @@ i32.store $0 offset=12 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof6 (result i32) + block $__inlined_func$~lib/rt/__instanceof16 (result i32) local.get $0 i32.const 20 i32.sub @@ -1486,12 +1486,12 @@ i32.load $0 i32.le_u if - loop $do-loop|08 + loop $do-loop|019 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof6 + br_if $__inlined_func$~lib/rt/__instanceof16 drop local.get $0 i32.const 3 @@ -1500,7 +1500,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|08 + br_if $do-loop|019 end end i32.const 0 @@ -1522,7 +1522,7 @@ i32.store $0 offset=16 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof9 (result i32) + block $__inlined_func$~lib/rt/__instanceof21 (result i32) local.get $0 i32.const 20 i32.sub @@ -1532,12 +1532,12 @@ i32.load $0 i32.le_u if - loop $do-loop|011 + loop $do-loop|024 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof9 + br_if $__inlined_func$~lib/rt/__instanceof21 drop local.get $0 i32.const 3 @@ -1546,7 +1546,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|011 + br_if $do-loop|024 end end i32.const 0 @@ -1569,7 +1569,7 @@ i32.store $0 offset=20 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof12 (result i32) + block $__inlined_func$~lib/rt/__instanceof26 (result i32) local.get $0 i32.const 20 i32.sub @@ -1579,12 +1579,12 @@ i32.load $0 i32.le_u if - loop $do-loop|014 + loop $do-loop|029 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof12 + br_if $__inlined_func$~lib/rt/__instanceof26 drop local.get $0 i32.const 3 @@ -1593,7 +1593,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|014 + br_if $do-loop|029 end end i32.const 0 @@ -1634,7 +1634,7 @@ i32.store $0 offset=24 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof15 (result i32) + block $__inlined_func$~lib/rt/__instanceof31 (result i32) local.get $0 i32.const 20 i32.sub @@ -1644,12 +1644,12 @@ i32.load $0 i32.le_u if - loop $do-loop|017 + loop $do-loop|034 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof15 + br_if $__inlined_func$~lib/rt/__instanceof31 drop local.get $0 i32.const 3 @@ -1658,7 +1658,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|017 + br_if $do-loop|034 end end i32.const 0 @@ -1680,7 +1680,7 @@ i32.store $0 offset=28 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof18 (result i32) + block $__inlined_func$~lib/rt/__instanceof36 (result i32) local.get $0 i32.const 20 i32.sub @@ -1690,12 +1690,12 @@ i32.load $0 i32.le_u if - loop $do-loop|020 + loop $do-loop|039 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof18 + br_if $__inlined_func$~lib/rt/__instanceof36 drop local.get $0 i32.const 3 @@ -1704,7 +1704,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|020 + br_if $do-loop|039 end end i32.const 0 @@ -1736,7 +1736,7 @@ i32.store $0 offset=32 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof21 (result i32) + block $__inlined_func$~lib/rt/__instanceof41 (result i32) local.get $0 i32.const 20 i32.sub @@ -1746,12 +1746,12 @@ i32.load $0 i32.le_u if - loop $do-loop|023 + loop $do-loop|044 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof21 + br_if $__inlined_func$~lib/rt/__instanceof41 drop local.get $0 i32.const 3 @@ -1760,7 +1760,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|023 + br_if $do-loop|044 end end i32.const 0 @@ -1783,7 +1783,7 @@ i32.store $0 offset=36 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof24 (result i32) + block $__inlined_func$~lib/rt/__instanceof46 (result i32) local.get $0 i32.const 20 i32.sub @@ -1793,12 +1793,12 @@ i32.load $0 i32.le_u if - loop $do-loop|026 + loop $do-loop|049 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof24 + br_if $__inlined_func$~lib/rt/__instanceof46 drop local.get $0 i32.const 3 @@ -1807,7 +1807,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|026 + br_if $do-loop|049 end end i32.const 0 @@ -1839,7 +1839,7 @@ i32.store $0 offset=40 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof27 (result i32) + block $__inlined_func$~lib/rt/__instanceof51 (result i32) local.get $0 i32.const 20 i32.sub @@ -1849,12 +1849,12 @@ i32.load $0 i32.le_u if - loop $do-loop|029 + loop $do-loop|054 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof27 + br_if $__inlined_func$~lib/rt/__instanceof51 drop local.get $0 i32.const 3 @@ -1863,7 +1863,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|029 + br_if $do-loop|054 end end i32.const 0 @@ -1886,7 +1886,7 @@ i32.store $0 offset=44 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof30 (result i32) + block $__inlined_func$~lib/rt/__instanceof56 (result i32) local.get $0 i32.const 20 i32.sub @@ -1896,12 +1896,12 @@ i32.load $0 i32.le_u if - loop $do-loop|032 + loop $do-loop|059 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof30 + br_if $__inlined_func$~lib/rt/__instanceof56 drop local.get $0 i32.const 3 @@ -1910,7 +1910,7 @@ i32.add i32.load $0 offset=4 local.tee $0 - br_if $do-loop|032 + br_if $do-loop|059 end end i32.const 0 diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index a91c1264a6..0e2269c31e 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -48,14 +48,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -67,9 +67,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -77,7 +81,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -129,7 +133,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -138,11 +142,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -161,7 +169,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -183,7 +191,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -204,6 +212,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -227,12 +243,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -251,7 +267,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -275,7 +291,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -354,36 +370,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -408,7 +440,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -508,10 +540,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -602,7 +634,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -655,7 +687,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -677,7 +709,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -685,7 +717,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -712,7 +744,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -720,7 +752,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -735,7 +767,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -930,7 +962,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1040,7 +1072,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1294,7 +1326,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1317,7 +1349,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1757,7 +1789,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1934,7 +1966,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2004,7 +2036,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2016,13 +2048,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2066,7 +2098,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2105,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index d928139d71..04b3b3bced 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -36,26 +36,42 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -80,7 +96,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -180,10 +196,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -274,7 +290,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -327,7 +343,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -349,7 +365,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -357,7 +373,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -384,7 +400,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -392,7 +408,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -407,7 +423,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -602,7 +618,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -712,7 +728,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1094,7 +1110,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1271,7 +1287,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1341,7 +1357,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1353,13 +1369,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -1403,7 +1419,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1442,24 +1458,24 @@ i32.const 4 i32.add ) - (func $~lib/rt/tcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/tcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/rt/tcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/tcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -1471,11 +1487,19 @@ call $~lib/rt/tcms/Object#set:prev local.get $space ) + (func $~lib/rt/tcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/rt/tcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/tcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -1484,7 +1508,7 @@ (func $~lib/rt/tcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/tcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -1504,7 +1528,7 @@ (func $~lib/rt/tcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1552,13 +1576,13 @@ ) (func $~lib/rt/tcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/tcms/Object#get:nextWithColor i32.const 3 i32.and ) (func $~lib/rt/tcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/tcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -1577,7 +1601,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/tcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -1599,7 +1623,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/tcms/Object#get:prev local.set $prev i32.const 1 drop @@ -1698,7 +1722,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1721,7 +1745,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index 95a556c2a4..b3de0f514b 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -84,9 +84,9 @@ local.get $newOffset global.set $~lib/rt/stub/offset ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) (func $~lib/rt/stub/__alloc (type $i32_=>_i32) (param $size i32) (result i32) @@ -134,24 +134,24 @@ call $~lib/rt/common/BLOCK#set:mmInfo local.get $ptr ) - (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/common/OBJECT#set:gcInfo2 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/OBJECT#set:gcInfo2 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/rt/common/OBJECT#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/OBJECT#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/common/OBJECT#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/OBJECT#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/stub/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index bc92cc39f1..1b1d5b194e 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -80,14 +80,14 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -99,9 +99,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -109,7 +113,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -161,7 +165,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -170,11 +174,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -193,7 +201,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -215,7 +223,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -236,6 +244,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -259,12 +275,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -283,7 +299,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -307,7 +323,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -386,36 +402,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -440,7 +472,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -540,10 +572,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -634,7 +666,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -687,7 +719,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -709,7 +741,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -717,7 +749,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -744,7 +776,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -752,7 +784,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -767,7 +799,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -962,7 +994,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1072,7 +1104,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1326,7 +1358,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1349,7 +1381,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1789,7 +1821,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1966,7 +1998,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2036,7 +2068,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2048,13 +2080,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2098,7 +2130,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2137,14 +2169,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2282,11 +2314,19 @@ end end ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_v128) (param $this i32) (param $index i32) (result v128) (local $value v128) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 272 @@ -2297,7 +2337,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 4 i32.shl @@ -6745,11 +6785,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -6758,11 +6802,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index 0d6262eb61..c564b8b000 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -26,11 +26,27 @@ (export "stringArrayMethodCall" (func $export:std/array-access/stringArrayMethodCall)) (export "stringArrayArrayPropertyAccess" (func $export:std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 32 @@ -41,7 +57,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -52,11 +68,23 @@ drop local.get $value ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -213,6 +241,14 @@ call $~lib/util/string/compareImpl i32.eqz ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~stack_check (type $none_=>_none) global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__data_end @@ -401,7 +437,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if i32.const 32 @@ -413,7 +449,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -457,7 +493,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if i32.const 32 @@ -469,7 +505,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -513,7 +549,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ i32.ge_u if i32.const 32 @@ -525,7 +561,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:dataStart local.get $index i32.const 2 i32.shl diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 3ba128134d..19d815350d 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_none (func_subtype func)) @@ -58,15 +58,23 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 176 @@ -77,7 +85,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -88,15 +96,23 @@ drop local.get $value ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 176 @@ -107,7 +123,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -118,14 +134,14 @@ drop local.get $value ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -137,9 +153,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -147,7 +167,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -199,7 +219,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -208,11 +228,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -231,7 +255,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -253,7 +277,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -274,6 +298,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -297,12 +329,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -321,7 +353,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -345,7 +377,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -424,36 +456,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -478,7 +526,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -578,10 +626,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -672,7 +720,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -725,7 +773,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -747,7 +795,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -755,7 +803,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -782,7 +830,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -790,7 +838,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -805,7 +853,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1000,7 +1048,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1110,7 +1158,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1364,7 +1412,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1387,7 +1435,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1827,7 +1875,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2004,7 +2052,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2074,7 +2122,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2086,13 +2134,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2136,7 +2184,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2175,14 +2223,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2322,7 +2370,7 @@ ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2334,7 +2382,7 @@ ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2344,9 +2392,13 @@ i32.const 0 drop ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2360,13 +2412,21 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2380,10 +2440,14 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $std/array-literal/doesntLeak (type $i32_=>_none) (param $refs i32) nop ) @@ -2508,11 +2572,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2521,11 +2589,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2534,6 +2606,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2542,11 +2618,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -2575,7 +2651,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2584,6 +2660,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -2592,11 +2672,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -2625,7 +2705,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index 71fe3e1036..4b8fa8204c 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1612,7 +1612,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end ) - (func $~lib/array/Array~visit (type $i32_=>_none) (param $0 i32) + (func $~lib/array/Array#__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1674,13 +1674,13 @@ return end local.get $0 - call $~lib/array/Array~visit + call $~lib/array/Array#__visit return end return end local.get $0 - call $~lib/array/Array~visit + call $~lib/array/Array#__visit return end unreachable diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index f1949a0609..5c7c0f4716 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -1,8 +1,8 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func)) (type $i32_i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32 i32) func)) @@ -385,14 +385,14 @@ (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -404,9 +404,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -414,7 +418,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -466,7 +470,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -475,11 +479,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -498,7 +506,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -520,7 +528,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -541,6 +549,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -564,12 +580,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -588,7 +604,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -612,7 +628,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -691,36 +707,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -745,7 +777,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -845,10 +877,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -939,7 +971,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -992,7 +1024,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1014,7 +1046,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1022,7 +1054,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1049,7 +1081,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1057,7 +1089,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1072,7 +1104,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1267,7 +1299,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1377,7 +1409,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1631,7 +1663,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1654,7 +1686,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2094,7 +2126,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2271,7 +2303,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2341,7 +2373,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2353,13 +2385,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2403,7 +2435,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2442,14 +2474,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2572,28 +2604,28 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array.isArray<~lib/array/Array|null> (type $i32_=>_i32) (param $value i32) (result i32) @@ -2606,9 +2638,9 @@ i32.const 0 end ) - (func $std/array/Ref#set:v (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/array/Ref#set:v (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) (func $~lib/array/Array.isArray (type $i32_=>_i32) (param $value i32) (result i32) @@ -2621,23 +2653,23 @@ i32.const 0 end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (type $i32_=>_i32) (param $value i32) (result i32) @@ -2688,6 +2720,14 @@ end local.get $buffer ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/bytes/FILL (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $len i32) (param $value i32) (param $start i32) (param $end i32) (local $5 i32) (local $6 i32) @@ -2769,9 +2809,9 @@ i32.const 0 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $value local.get $start local.get $end @@ -2780,13 +2820,13 @@ ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -2797,7 +2837,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2864,6 +2904,14 @@ end i32.const 1 ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/bytes/FILL (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $len i32) (param $value i32) (param $start i32) (param $end i32) (local $5 i32) (local $6 i32) @@ -2987,9 +3035,9 @@ i32.const 0 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $value local.get $start local.get $end @@ -2998,13 +3046,13 @@ ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -3015,7 +3063,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3082,6 +3130,14 @@ end i32.const 1 ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/bytes/FILL (type $i32_i32_f32_i32_i32_=>_none) (param $ptr i32) (param $len i32) (param $value f32) (param $start i32) (param $end i32) (local $5 i32) (local $6 i32) @@ -3211,9 +3267,9 @@ i32.const 0 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $value local.get $start local.get $end @@ -3222,13 +3278,13 @@ ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -3239,7 +3295,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3362,14 +3418,38 @@ end i32.const 1 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this i32.load $0 offset=16 ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) @@ -3383,7 +3463,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -3400,7 +3480,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -3408,7 +3488,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -3429,7 +3509,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -3451,7 +3531,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -3513,11 +3593,15 @@ i32.store $0 offset=8 end ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $oldLen i32) (local $len i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $oldLen local.get $oldLen i32.const 1 @@ -3531,7 +3615,7 @@ i32.const 0 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $oldLen i32.const 2 i32.shl @@ -3547,7 +3631,7 @@ (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -3558,7 +3642,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3573,7 +3657,7 @@ (local $len i32) (local $val i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 1 @@ -3587,7 +3671,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $len i32.const 1 i32.sub @@ -3602,9 +3686,13 @@ call $~lib/array/Array#set:length_ local.get $val ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3618,9 +3706,9 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#set:length (type $i32_i32_=>_none) (param $this i32) (param $newLength i32) @@ -3633,15 +3721,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) (local $value i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $index i32.const 0 @@ -3664,7 +3756,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -3699,10 +3791,10 @@ (local $24 i32) (local $count i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $end local.tee $6 @@ -3877,7 +3969,7 @@ (local $len i32) (local $ptr i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 1 i32.add local.set $len @@ -3887,7 +3979,7 @@ i32.const 1 call $~lib/array/ensureCapacity local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $ptr i32.const 4 @@ -3915,7 +4007,7 @@ (local $element i32) (local $lastIndex i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 1 @@ -3929,7 +4021,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $base local.get $base i32.load $0 @@ -4036,9 +4128,9 @@ ) (func $~lib/array/Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this ) @@ -4214,12 +4306,20 @@ ) (func $~lib/array/Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) @@ -4348,21 +4448,21 @@ ) (func $~lib/array/Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -4373,7 +4473,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -4391,7 +4491,7 @@ (local $ptr i32) (local $7 i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4424,7 +4524,7 @@ local.set $fromIndex end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4461,7 +4561,7 @@ (local $ptr i32) (local $7 i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4494,7 +4594,7 @@ local.set $fromIndex end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4524,6 +4624,14 @@ end i32.const -1 ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#indexOf (type $i32_f64_i32_=>_i32) (param $this i32) (param $value f64) (param $fromIndex i32) (result i32) (local $len i32) (local $4 i32) @@ -4531,7 +4639,7 @@ (local $ptr i32) (local $7 i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4564,7 +4672,7 @@ local.set $fromIndex end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4599,7 +4707,7 @@ (local $ptr i32) (local $5 i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4628,7 +4736,7 @@ end end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4670,7 +4778,7 @@ unreachable end local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $fromIndex end local.get $this @@ -4699,7 +4807,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4732,7 +4840,7 @@ local.set $fromIndex end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4786,7 +4894,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $len i32.const 0 @@ -4819,7 +4927,7 @@ local.set $fromIndex end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr loop $while-continue|0 local.get $fromIndex @@ -4863,9 +4971,17 @@ i32.const 0 return ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $std/array/Ref#get:v (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -4879,18 +4995,22 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -4903,7 +5023,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -4949,14 +5069,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $4 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $5 local.get $4 local.get $5 @@ -4967,7 +5087,7 @@ local.get $6 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -5034,7 +5154,7 @@ (local $i i32) (local $3 i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 1 i32.sub local.set $i @@ -5046,7 +5166,7 @@ local.get $3 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -5104,14 +5224,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $4 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $5 local.get $4 local.get $5 @@ -5122,7 +5242,7 @@ local.get $6 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -5190,14 +5310,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $4 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $5 local.get $4 local.get $5 @@ -5208,7 +5328,7 @@ local.get $6 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -5276,14 +5396,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $4 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $5 local.get $4 local.get $5 @@ -5294,7 +5414,7 @@ local.get $6 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -5882,6 +6002,10 @@ i32.const 10 call $~lib/number/I32#toString ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $start:std/array~anonymous|26 (type $i32_i32_i32_=>_f32) (param $value i32) (param $$1 i32) (param $$2 i32) (result f32) local.get $value f32.convert_i32_s @@ -5970,14 +6094,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -5989,7 +6113,7 @@ if local.get $acc local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -6039,14 +6163,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -6058,7 +6182,7 @@ if local.get $acc local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -6125,7 +6249,7 @@ local.get $initialValue local.set $acc local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 1 i32.sub local.set $i @@ -6138,7 +6262,7 @@ if local.get $acc local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -6183,7 +6307,7 @@ local.get $initialValue local.set $acc local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 1 i32.sub local.set $i @@ -6196,7 +6320,7 @@ if local.get $acc local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -6341,19 +6465,23 @@ i32.const 1 global.set $~lib/math/random_seeded ) - (func $std/array/Dim#set:height (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/array/Dim#set:height (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/array/Dim#set:width (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/array/Dim#set:width (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -7342,9 +7470,9 @@ ) (func $~lib/array/Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $comparator call $~lib/util/sort/SORT local.get $this @@ -8307,9 +8435,9 @@ ) (func $~lib/array/Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $comparator call $~lib/util/sort/SORT local.get $this @@ -8349,13 +8477,13 @@ ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -8366,7 +8494,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -9412,9 +9540,9 @@ ) (func $~lib/array/Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $comparator call $~lib/util/sort/SORT local.get $this @@ -10349,9 +10477,9 @@ ) (func $~lib/array/Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $comparator call $~lib/util/sort/SORT local.get $this @@ -10466,11 +10594,19 @@ end i32.const 1 ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $std/array/Dim#get:height (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/array/Dim#get:height local.get $b - i32.load $0 + call $std/array/Dim#get:height i32.sub ) (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) @@ -11310,16 +11446,20 @@ ) (func $~lib/array/Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.get $comparator call $~lib/util/sort/SORT local.get $this ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ + ) + (func $std/array/Dim#get:width (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 ) (func $start:std/array~anonymous|48 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -11341,33 +11481,41 @@ local.get $a i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array<~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array<~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array<~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -11384,7 +11532,7 @@ (func $~lib/array/Array<~lib/array/Array>#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if local.get $index @@ -12262,49 +12410,57 @@ ) (func $~lib/array/Array<~lib/array/Array>#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.get $comparator call $~lib/util/sort/SORT<~lib/array/Array> local.get $this ) (func $~lib/array/Array<~lib/array/Array>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ ) - (func $~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $std/array/Proxy#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/array/Proxy#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -12321,7 +12477,7 @@ (func $~lib/array/Array>#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array>#get:length_ i32.ge_u if local.get $index @@ -12353,11 +12509,15 @@ local.get $value call $~lib/array/Array>#__uset ) + (func $std/array/Proxy#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $start:std/array~anonymous|53 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/array/Proxy#get:x local.get $b - i32.load $0 + call $std/array/Proxy#get:x i32.sub ) (func $~lib/util/sort/insertionSort> (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) @@ -13197,14 +13357,22 @@ ) (func $~lib/array/Array>#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array>#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array>#get:length_ local.get $comparator call $~lib/util/sort/SORT> local.get $this ) (func $~lib/array/Array>#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array>#get:length_ + ) + (func $~lib/array/Array<~lib/string/String|null>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String|null>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) @@ -14045,22 +14213,22 @@ ) (func $~lib/array/Array<~lib/string/String|null>#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ local.get $comparator call $~lib/util/sort/SORT<~lib/string/String|null> local.get $this ) (func $~lib/array/Array<~lib/string/String|null>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -14335,28 +14503,28 @@ call $~lib/string/String.__eq i32.eqz ) - (func $~lib/array/Array<~lib/string/String>#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array<~lib/string/String>#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array<~lib/string/String>#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) @@ -14364,9 +14532,13 @@ local.get $right call $~lib/string/String#concat ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -14383,7 +14555,7 @@ (func $~lib/array/Array<~lib/string/String>#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if local.get $index @@ -15252,16 +15424,16 @@ ) (func $~lib/array/Array<~lib/string/String>#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ local.get $comparator call $~lib/util/sort/SORT<~lib/string/String> local.get $this ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ ) (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $alen i32) @@ -15380,14 +15552,22 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 1 drop @@ -15494,10 +15674,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -15578,10 +15758,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -16978,10 +17158,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -16999,10 +17179,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ local.set $len i32.const 0 drop @@ -17029,10 +17209,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17058,10 +17238,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17083,6 +17263,14 @@ call $~lib/util/string/joinReferenceArray return ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) (local $dest i32) @@ -17217,10 +17405,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17307,10 +17495,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17322,6 +17510,14 @@ call $~lib/util/string/joinIntegerArray return ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) (local $dest i32) @@ -17471,10 +17667,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17486,6 +17682,14 @@ call $~lib/util/string/joinIntegerArray return ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/number/decimalCount64High (type $i64_=>_i32) (param $value i64) (result i32) local.get $value i64.const 1000000000000000 @@ -17769,10 +17973,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17784,6 +17988,14 @@ call $~lib/util/string/joinIntegerArray return ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/number/itoa_buffered (type $i32_i64_=>_i32) (param $buffer i32) (param $value i64) (result i32) (local $sign i32) (local $dest i32) @@ -17913,10 +18125,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -17932,10 +18144,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len i32.const 0 drop @@ -17957,9 +18169,13 @@ call $~lib/util/string/joinReferenceArray<~lib/array/Array> return ) - (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -17973,6 +18189,10 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) (local $dest i32) @@ -18048,10 +18268,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len i32.const 0 drop @@ -18067,10 +18287,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len i32.const 0 drop @@ -18092,9 +18312,13 @@ call $~lib/util/string/joinReferenceArray<~lib/array/Array> return ) - (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -18108,9 +18332,13 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:dataStart local.get $index i32.const 2 i32.shl @@ -18124,14 +18352,22 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/array/Array<~lib/array/Array>#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len i32.const 0 drop @@ -18157,10 +18393,10 @@ (local $ptr i32) (local $len i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:length_ local.set $len i32.const 0 drop @@ -18182,9 +18418,13 @@ call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> return ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:dataStart local.get $index i32.const 2 i32.shl @@ -18198,6 +18438,10 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $start:std/array~anonymous|54 (type $i32_i32_i32_=>_i32) (param $nestedArray i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $nestedArray call $~lib/array/Array#get:length @@ -18350,7 +18594,7 @@ i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18364,11 +18608,15 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18377,11 +18625,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18390,11 +18642,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18403,6 +18659,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18411,11 +18671,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -18444,7 +18704,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18453,11 +18713,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18466,11 +18730,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18479,6 +18747,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18487,11 +18759,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -18520,7 +18792,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18529,9 +18801,13 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18540,9 +18816,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18551,6 +18831,10 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>#__visit ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18559,11 +18843,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -18592,7 +18876,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18601,9 +18885,13 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>~lib/string/String>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>~lib/string/String>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18612,9 +18900,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>~lib/string/String>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18623,9 +18915,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18634,9 +18930,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18645,9 +18945,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>#__visit ) - (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18656,6 +18960,10 @@ local.get $1 call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18664,11 +18972,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.const 2 i32.shl i32.add @@ -18697,7 +19005,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18706,9 +19014,13 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Cf32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18717,9 +19029,13 @@ local.get $1 call $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18728,9 +19044,13 @@ local.get $1 call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18739,9 +19059,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit ) - (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Cu32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18750,9 +19074,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit ) - (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18761,6 +19089,10 @@ local.get $1 call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit ) + (func $~lib/array/Array<~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18769,11 +19101,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -18802,7 +19134,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18811,9 +19143,13 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__visit ) - (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18822,6 +19158,10 @@ local.get $1 call $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32>#__visit ) + (func $~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18830,11 +19170,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -18863,7 +19203,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18872,9 +19212,13 @@ local.get $1 call $~lib/array/Array>#__visit ) - (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18883,6 +19227,10 @@ local.get $1 call $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32>#__visit ) + (func $~lib/array/Array<~lib/string/String|null>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String|null>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -18891,11 +19239,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ i32.const 2 i32.shl i32.add @@ -18924,7 +19272,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String|null>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18933,9 +19281,13 @@ local.get $1 call $~lib/array/Array<~lib/string/String|null>#__visit ) - (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18944,9 +19296,13 @@ local.get $1 call $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32>#__visit ) - (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18955,11 +19311,15 @@ local.get $1 call $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18968,11 +19328,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18981,11 +19345,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -18994,11 +19362,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19007,11 +19379,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19020,6 +19396,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array<~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -19028,11 +19408,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -19061,7 +19441,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19070,6 +19450,10 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__visit ) + (func $~lib/array/Array<~lib/array/Array>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -19078,11 +19462,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.const 2 i32.shl i32.add @@ -19111,7 +19495,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19120,6 +19504,10 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__visit ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -19128,11 +19516,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:length_ i32.const 2 i32.shl i32.add @@ -19161,7 +19549,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19170,6 +19558,10 @@ local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -19178,11 +19570,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:length_ i32.const 2 i32.shl i32.add @@ -19211,7 +19603,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19220,9 +19612,13 @@ local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit ) - (func $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28~lib/array/Array%2Ci32%2C~lib/array/Array<~lib/array/Array>%29=>~lib/array/Array>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -19889,17 +20285,17 @@ local.tee $target i32.store $0 offset=20 local.get $input - i32.load $0 + call $std/array/Dim#get:height local.get $target - i32.load $0 + call $std/array/Dim#get:height i32.ne if (result i32) i32.const 1 else local.get $input - i32.load $0 offset=4 + call $std/array/Dim#get:width local.get $target - i32.load $0 offset=4 + call $std/array/Dim#get:width i32.ne end if @@ -22796,7 +23192,7 @@ i32.const 0 i32.store $0 offset=8 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len global.get $~lib/memory/__stack_pointer local.get $len @@ -22807,7 +23203,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $outStart i32.const 0 local.set $i @@ -22816,7 +23212,7 @@ local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.tee $7 local.get $6 local.get $7 @@ -22828,7 +23224,7 @@ if global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $i i32.const 2 i32.shl @@ -28236,7 +28632,12 @@ local.get $262 i32.const 0 call $~lib/array/Array#__get - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 3 i32.eq i32.eqz @@ -28251,7 +28652,12 @@ local.get $262 i32.const 1 call $~lib/array/Array#__get - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 4 i32.eq i32.eqz @@ -28279,7 +28685,12 @@ local.get $261 i32.const 0 call $~lib/array/Array#__get - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 1 i32.eq i32.eqz @@ -28294,7 +28705,12 @@ local.get $261 i32.const 1 call $~lib/array/Array#__get - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 2 i32.eq i32.eqz @@ -28309,7 +28725,12 @@ local.get $261 i32.const 2 call $~lib/array/Array#__get - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 5 i32.eq i32.eqz @@ -28391,7 +28812,12 @@ call $~lib/builtins/abort unreachable end - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 1 i32.eq i32.eqz @@ -28447,7 +28873,12 @@ call $~lib/builtins/abort unreachable end - i32.load $0 + local.set $487 + global.get $~lib/memory/__stack_pointer + local.get $487 + i32.store $0 + local.get $487 + call $std/array/Ref#get:v i32.const 2 i32.eq i32.eqz @@ -33066,7 +33497,7 @@ i32.store $0 global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/array/Array#get:buffer local.tee $buffer i32.store $0 local.get $buffer @@ -33097,10 +33528,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $thisLen local.get $other - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $otherLen local.get $thisLen local.get $otherLen @@ -33128,7 +33559,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $outStart local.get $thisLen i32.const 2 @@ -33138,14 +33569,14 @@ drop local.get $outStart local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $thisSize memory.copy $0 $0 local.get $outStart local.get $thisSize i32.add local.get $other - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $otherLen i32.const 2 i32.shl @@ -33183,7 +33614,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $start i32.const 0 @@ -33255,10 +33686,10 @@ local.tee $slice i32.store $0 local.get $slice - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sliceBase local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $start i32.const 2 i32.shl @@ -33305,7 +33736,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $start i32.const 0 @@ -33359,10 +33790,10 @@ local.tee $result i32.store $0 local.get $result - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $resultStart local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $thisStart local.get $thisStart local.get $start @@ -33435,7 +33866,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $start i32.const 0 @@ -33489,10 +33920,10 @@ local.tee $result i32.store $0 local.get $result - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $resultStart local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $thisStart local.get $thisStart local.get $start @@ -33553,7 +33984,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -33565,7 +33996,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -33621,7 +34052,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $start i32.const 0 @@ -33675,10 +34106,10 @@ local.tee $result i32.store $0 local.get $result - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $resultStart local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $thisStart local.get $thisStart local.get $start @@ -33739,7 +34170,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -33751,7 +34182,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -33972,7 +34403,7 @@ i64.const 0 i64.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer local.get $len @@ -33983,7 +34414,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $outStart i32.const 0 local.set $i @@ -33992,7 +34423,7 @@ local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -34004,7 +34435,7 @@ if global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -34066,7 +34497,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer local.get $len @@ -34077,7 +34508,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 local.set $i @@ -34086,7 +34517,7 @@ local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -34097,7 +34528,7 @@ local.get $8 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -34154,7 +34585,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer local.get $len @@ -34165,7 +34596,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 local.set $i @@ -34174,7 +34605,7 @@ local.get $len local.tee $6 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $7 local.get $6 local.get $7 @@ -34185,7 +34616,7 @@ local.get $8 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -34251,14 +34682,14 @@ i32.const 0 local.set $i local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 local.get $i local.get $len local.tee $5 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.tee $6 local.get $5 local.get $6 @@ -34269,7 +34700,7 @@ local.get $7 if local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $i i32.const 2 i32.shl @@ -34640,7 +35071,7 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $len local.get $start i32.const 0 @@ -34712,10 +35143,10 @@ local.tee $slice i32.store $0 local.get $slice - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sliceBase local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $start i32.const 2 i32.shl @@ -34778,7 +35209,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 320 @@ -34790,7 +35221,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -34986,7 +35417,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ i32.ge_u if i32.const 320 @@ -34998,7 +35429,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -35163,7 +35594,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array>#get:length_ i32.ge_u if i32.const 320 @@ -35175,7 +35606,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array>#get:dataStart local.get $index i32.const 2 i32.shl @@ -35219,7 +35650,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String|null>#get:length_ i32.ge_u if i32.const 320 @@ -35231,7 +35662,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String|null>#get:dataStart local.get $index i32.const 2 i32.shl @@ -35467,7 +35898,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if i32.const 320 @@ -35479,7 +35910,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -38251,10 +38682,10 @@ i32.eqz drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len i32.const 0 local.set $size @@ -38414,10 +38845,10 @@ i32.eqz drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:dataStart local.set $ptr local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#get:length_ local.set $len i32.const 0 local.set $size diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index cc3f27a76f..abe8fc69a5 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -11326,7 +11326,7 @@ (local $3 i32) block $folding-inner4 block $folding-inner3 - block $folding-inner1 + block $folding-inner2 block $invalid block $std/array/Proxy block $std/array/Dim @@ -11337,7 +11337,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner4 $std/array/Ref $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $std/array/Dim $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner3 $std/array/Proxy $folding-inner1 $folding-inner3 $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $invalid + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner4 $std/array/Ref $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner2 $folding-inner4 $folding-inner4 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $std/array/Dim $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner3 $std/array/Proxy $folding-inner2 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner4 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner3 $invalid end return end @@ -11752,9 +11752,10 @@ local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store $0 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -12731,17 +12732,16 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) + (local $3 i64) + (local $4 f64) + (local $5 f32) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 508 i32.sub @@ -12812,10 +12812,10 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -12826,23 +12826,23 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 end - local.get $0 + local.get $1 i32.const 0 i32.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -12851,35 +12851,35 @@ call $~lib/rt/itcms/__new local.tee $2 i32.store $0 offset=4 - local.get $0 + local.get $1 local.get $2 i32.store $0 local.get $2 if - local.get $0 + local.get $1 local.get $2 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 - local.get $0 + local.get $1 i32.const 1 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 1664 @@ -12917,7 +12917,7 @@ i32.const 1 i32.gt_s select - local.tee $7 + local.tee $6 i32.const 3 local.get $2 local.get $2 @@ -12928,11 +12928,11 @@ i32.lt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const 1 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -12968,17 +12968,17 @@ i32.const 0 i32.le_s select - local.set $7 + local.set $6 local.get $2 - local.get $7 + local.get $6 i32.gt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const 0 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -13014,7 +13014,7 @@ i32.const 0 i32.le_s select - local.tee $7 + local.tee $6 local.get $2 i32.const 3 i32.sub @@ -13022,11 +13022,11 @@ i32.lt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const 1 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -13059,16 +13059,16 @@ local.tee $2 i32.const 2 i32.sub - local.tee $7 + local.tee $6 local.get $2 i32.lt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const 2 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -13104,7 +13104,7 @@ i32.const 1 i32.gt_s select - local.tee $7 + local.tee $6 local.get $2 i32.const 0 local.get $2 @@ -13115,11 +13115,11 @@ i32.lt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const 0 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -13155,17 +13155,17 @@ i32.const 0 i32.le_s select - local.set $7 + local.set $6 local.get $2 - local.get $7 + local.get $6 i32.gt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.const -1 local.get $2 - local.get $7 + local.get $6 i32.sub memory.fill $0 end @@ -15033,7 +15033,7 @@ i32.load $0 offset=4 local.tee $2 i32.load $0 - local.set $7 + local.set $6 local.get $2 local.get $2 i32.const 4 @@ -15044,17 +15044,17 @@ local.tee $1 i32.const 2 i32.shl - local.tee $8 + local.tee $7 memory.copy $0 $0 local.get $2 - local.get $8 + local.get $7 i32.add i32.const 0 i32.store $0 local.get $0 local.get $1 i32.store $0 offset=12 - local.get $7 + local.get $6 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -15512,54 +15512,54 @@ i32.store $0 local.get $0 i32.load $0 offset=4 - local.set $1 + local.set $2 local.get $0 i32.load $0 offset=12 - local.tee $2 + local.tee $0 i32.const 1 i32.gt_u if i32.const 0 - local.set $0 - local.get $2 + local.set $1 + local.get $0 i32.const 1 i32.shr_u - local.set $7 - local.get $2 + local.set $6 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $while-continue|0 - local.get $0 - local.get $7 + local.get $1 + local.get $6 i32.lt_u if + local.get $2 local.get $1 - local.get $0 i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $7 i32.load $0 - local.set $9 - local.get $8 - local.get $1 + local.set $8 + local.get $7 local.get $2 local.get $0 + local.get $1 i32.sub i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $7 i32.load $0 i32.store $0 + local.get $7 local.get $8 - local.get $9 i32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -15675,24 +15675,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=60 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|0 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15705,10 +15705,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|0 end end @@ -15726,24 +15726,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=64 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|1 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15756,10 +15756,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|1 end end @@ -15777,24 +15777,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=68 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|2 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15807,10 +15807,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|2 end end @@ -15828,24 +15828,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=72 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|3 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15858,10 +15858,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|3 end end @@ -15879,24 +15879,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=76 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|4 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15909,10 +15909,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|4 end end @@ -15930,24 +15930,24 @@ local.get $0 local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=80 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 loop $for-loop|5 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 - call $~lib/array/Array#__get local.get $1 - i32.load $0 offset=12 + call $~lib/array/Array#__get local.get $0 + i32.load $0 offset=12 + local.get $1 i32.sub i32.const 1 i32.sub @@ -15960,10 +15960,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|5 end end @@ -15972,15 +15972,15 @@ local.tee $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or @@ -15988,14 +15988,14 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|014 - local.get $0 - local.get $7 + loop $while-continue|06 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -16003,17 +16003,17 @@ i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|06 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -16029,48 +16029,48 @@ local.tee $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf36 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf7 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf36 + br_if $__inlined_func$~lib/array/Array#indexOf7 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|038 - local.get $0 - local.get $7 + loop $while-continue|08 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf36 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf7 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|038 + local.set $1 + br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 2 @@ -16088,48 +16088,48 @@ local.tee $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf39 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf39 + br_if $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|041 - local.get $0 - local.get $7 + loop $while-continue|010 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf9 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|041 + local.set $1 + br $while-continue|010 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -16147,48 +16147,48 @@ local.tee $2 i32.store $0 i32.const 100 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf42 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf11 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf42 + br_if $__inlined_func$~lib/array/Array#indexOf11 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|044 - local.get $0 - local.get $7 + loop $while-continue|012 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf42 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf11 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|044 + local.set $1 + br $while-continue|012 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -16203,12 +16203,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf45 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf13 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -16216,45 +16216,45 @@ i32.const -100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf45 + br_if $__inlined_func$~lib/array/Array#indexOf13 local.get $2 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|047 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|014 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf45 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf13 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|047 + local.set $1 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16269,12 +16269,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf48 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf15 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -16282,45 +16282,45 @@ i32.const -2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf48 + br_if $__inlined_func$~lib/array/Array#indexOf15 local.get $2 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|050 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|016 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf48 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf15 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|050 + local.set $1 + br $while-continue|016 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -16335,12 +16335,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf51 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf17 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -16348,45 +16348,45 @@ i32.const -4 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf51 + br_if $__inlined_func$~lib/array/Array#indexOf17 local.get $2 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|053 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|018 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf17 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|053 + local.set $1 + br $while-continue|018 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16404,48 +16404,48 @@ local.tee $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf54 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf54 + br_if $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|056 - local.get $0 - local.get $7 + loop $while-continue|020 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf54 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf19 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|056 + local.set $1 + br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16463,48 +16463,48 @@ local.tee $2 i32.store $0 i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf57 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf21 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 1 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf57 + br_if $__inlined_func$~lib/array/Array#indexOf21 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|059 - local.get $0 - local.get $7 + loop $while-continue|022 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf57 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf21 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|059 + local.set $1 + br $while-continue|022 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16522,48 +16522,48 @@ local.tee $2 i32.store $0 i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf60 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf23 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf60 + br_if $__inlined_func$~lib/array/Array#indexOf23 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|062 - local.get $0 - local.get $7 + loop $while-continue|024 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf60 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf23 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|062 + local.set $1 + br $while-continue|024 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -16586,15 +16586,15 @@ local.get $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or @@ -16602,14 +16602,14 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|064 - local.get $0 - local.get $7 + loop $while-continue|085 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -16617,17 +16617,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|064 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -16648,15 +16648,15 @@ local.get $2 i32.store $0 i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or @@ -16664,14 +16664,14 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|066 - local.get $0 - local.get $7 + loop $while-continue|089 + local.get $1 + local.get $6 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -16679,17 +16679,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|066 + local.set $1 + br $while-continue|089 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -16706,14 +16706,14 @@ i32.const 3 i32.const 4528 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=84 i32.const 1 global.set $~argumentsLength i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -16728,17 +16728,17 @@ i32.const 0 i32.lt_s select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|06 - local.get $1 + loop $while-continue|025 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -16746,17 +16746,17 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|06 + local.set $0 + br $while-continue|025 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -16770,13 +16770,13 @@ i32.const 1 global.set $~argumentsLength i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf11 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf30 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf11 + br_if $__inlined_func$~lib/array/Array#lastIndexOf30 local.get $2 local.get $2 i32.add @@ -16787,35 +16787,35 @@ i32.const 0 i32.lt_s select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|012 - local.get $1 + loop $while-continue|031 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf11 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|012 + local.set $0 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -16827,13 +16827,13 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf13 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf32 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf13 + br_if $__inlined_func$~lib/array/Array#lastIndexOf32 i32.const 3 local.get $2 i32.const 1 @@ -16842,35 +16842,35 @@ i32.const 3 i32.gt_s select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|068 - local.get $1 + loop $while-continue|093 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf13 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|068 + local.set $0 + br $while-continue|093 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -16882,13 +16882,13 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf69 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf94 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf69 + br_if $__inlined_func$~lib/array/Array#lastIndexOf94 i32.const 2 local.get $2 i32.const 1 @@ -16897,35 +16897,35 @@ i32.const 2 i32.gt_s select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|071 - local.get $1 + loop $while-continue|098 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf69 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf94 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|071 + local.set $0 + br $while-continue|098 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -16935,45 +16935,45 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf99 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf72 + br_if $__inlined_func$~lib/array/Array#lastIndexOf99 local.get $2 i32.const 2 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|074 - local.get $1 + loop $while-continue|0103 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf99 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|074 + local.set $0 + br $while-continue|0103 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -16983,45 +16983,45 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf104 + local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf75 + br_if $__inlined_func$~lib/array/Array#lastIndexOf104 local.get $2 i32.const 1 i32.sub - local.set $1 - local.get $0 - i32.load $0 offset=4 local.set $0 - loop $while-continue|077 - local.get $1 + local.get $1 + i32.load $0 offset=4 + local.set $1 + loop $while-continue|0108 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf104 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|0108 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17040,22 +17040,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf14 + block $__inlined_func$~lib/array/Array#indexOf33 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf14 + br_if $__inlined_func$~lib/array/Array#indexOf33 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|015 + loop $while-continue|034 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17067,12 +17067,12 @@ i32.load $0 i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf14 + br_if $__inlined_func$~lib/array/Array#indexOf33 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|015 + br $while-continue|034 end end i32.const -1 @@ -17097,22 +17097,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf17 + block $__inlined_func$~lib/array/Array#indexOf35 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf35 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|018 + loop $while-continue|036 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17124,12 +17124,12 @@ i32.load $0 i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf35 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|018 + br $while-continue|036 end end i32.const -1 @@ -17154,22 +17154,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf20 + block $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|021 + loop $while-continue|038 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17181,12 +17181,12 @@ i32.load $0 i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|021 + br $while-continue|038 end end i32.const -1 @@ -17211,22 +17211,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf23 + block $__inlined_func$~lib/array/Array#indexOf39 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|024 + loop $while-continue|040 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17238,12 +17238,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|024 + br $while-continue|040 end end i32.const -1 @@ -17262,12 +17262,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf26 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf41 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -17275,45 +17275,45 @@ i32.const -100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf41 local.get $2 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|027 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|042 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf41 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17326,12 +17326,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf29 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf43 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -17339,45 +17339,45 @@ i32.const -2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf29 + br_if $__inlined_func$~lib/array/Array#indexOf43 local.get $2 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|030 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|044 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf29 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf43 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|044 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17390,12 +17390,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf32 - local.get $1 + local.set $1 + block $__inlined_func$~lib/array/Array#indexOf45 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -17403,45 +17403,45 @@ i32.const -4 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf32 + br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $2 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - local.get $1 - i32.load $0 offset=4 local.set $1 - loop $while-continue|033 - local.get $0 + local.get $0 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|046 + local.get $1 local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf32 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf45 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|046 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17460,22 +17460,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf35 + block $__inlined_func$~lib/array/Array#indexOf47 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf35 + br_if $__inlined_func$~lib/array/Array#indexOf47 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|036 + loop $while-continue|048 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17487,12 +17487,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf35 + br_if $__inlined_func$~lib/array/Array#indexOf47 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|036 + br $while-continue|048 end end i32.const -1 @@ -17517,22 +17517,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf38 + block $__inlined_func$~lib/array/Array#indexOf49 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 1 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf38 + br_if $__inlined_func$~lib/array/Array#indexOf49 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|039 + loop $while-continue|050 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17544,12 +17544,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf38 + br_if $__inlined_func$~lib/array/Array#indexOf49 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|039 + br $while-continue|050 end end i32.const -1 @@ -17574,22 +17574,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf41 + block $__inlined_func$~lib/array/Array#indexOf51 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.eqz - local.get $7 + local.get $6 i32.const 2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|042 + loop $while-continue|052 local.get $1 - local.get $7 + local.get $6 i32.lt_s if local.get $2 @@ -17601,12 +17601,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|042 + br $while-continue|052 end end i32.const -1 @@ -17629,14 +17629,14 @@ i32.const 8 i32.const 4576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -17646,31 +17646,31 @@ i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load $0 offset=4 - local.set $1 - loop $while-continue|079 - local.get $0 + local.set $0 + loop $while-continue|0112 + local.get $1 local.get $2 i32.lt_s if i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load $0 - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f32.ne br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|079 + local.set $1 + br $while-continue|0112 end end i32.const 0 @@ -17690,14 +17690,14 @@ i32.const 11 i32.const 4608 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load $0 offset=12 local.tee $2 i32.eqz @@ -17707,31 +17707,31 @@ i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load $0 offset=4 - local.set $1 - loop $while-continue|081 - local.get $0 + local.set $0 + loop $while-continue|0116 + local.get $1 local.get $2 i32.lt_s if i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load $0 - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.ne br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + local.set $1 + br $while-continue|0116 end end i32.const 0 @@ -18756,6 +18756,11 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 + local.get $2 i32.load $0 i32.const 3 i32.ne @@ -18770,6 +18775,11 @@ local.get $0 i32.const 1 call $~lib/array/Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 4 i32.ne @@ -18796,6 +18806,11 @@ local.get $1 i32.const 0 call $~lib/array/Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.ne @@ -18810,6 +18825,11 @@ local.get $1 i32.const 1 call $~lib/array/Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 2 i32.ne @@ -18824,6 +18844,11 @@ local.get $1 i32.const 2 call $~lib/array/Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 5 i32.ne @@ -18881,17 +18906,17 @@ i32.store $0 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.const 0 - local.get $7 + local.get $6 i32.const 0 i32.le_s select - local.set $8 + local.set $7 local.get $2 i32.const 1 + local.get $6 local.get $7 - local.get $8 i32.sub local.tee $2 local.get $2 @@ -18909,44 +18934,44 @@ i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.load $0 offset=4 local.get $1 i32.load $0 offset=4 - local.tee $10 - local.get $8 + local.tee $9 + local.get $7 i32.const 2 i32.shl i32.add - local.tee $11 + local.tee $10 local.get $2 i32.const 2 i32.shl memory.copy $0 $0 local.get $2 - local.get $8 - i32.add - local.tee $8 local.get $7 + i32.add + local.tee $7 + local.get $6 i32.ne if - local.get $11 local.get $10 - local.get $8 + local.get $9 + local.get $7 i32.const 2 i32.shl i32.add + local.get $6 local.get $7 - local.get $8 i32.sub i32.const 2 i32.shl memory.copy $0 $0 end local.get $1 - local.get $7 + local.get $6 local.get $2 i32.sub i32.store $0 offset=12 @@ -18955,9 +18980,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $9 + local.get $8 i32.store $0 offset=120 - local.get $9 + local.get $8 i32.load $0 offset=12 i32.const 1 i32.ne @@ -18970,7 +18995,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -18985,6 +19010,9 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 local.get $0 i32.load $0 i32.const 1 @@ -19036,6 +19064,9 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 local.get $0 i32.load $0 i32.const 2 @@ -19082,57 +19113,57 @@ call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 6608 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|090 - local.get $0 - local.get $2 + loop $for-loop|0138 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 6608 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|090 + local.set $1 + br $for-loop|0138 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i if @@ -19146,57 +19177,57 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 6640 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex92 - loop $for-loop|094 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex141 + loop $for-loop|0144 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 6640 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex92 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findIndex141 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|094 + local.set $1 + br $for-loop|0144 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -19212,57 +19243,57 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 6672 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex96 - loop $for-loop|098 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex148 + loop $for-loop|0151 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 6672 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex96 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findIndex148 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|098 + local.set $1 + br $for-loop|0151 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19278,57 +19309,57 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 6704 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex100 - loop $for-loop|0102 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex155 + loop $for-loop|0158 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 6704 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex100 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findIndex155 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0102 + local.set $1 + br $for-loop|0158 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19360,57 +19391,57 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 6736 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex105 - loop $for-loop|0107 + local.set $0 + block $__inlined_func$~lib/array/Array#findIndex164 + loop $for-loop|0167 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 6736 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex105 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findIndex164 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0107 + local.set $1 + br $for-loop|0167 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19453,57 +19484,57 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 6768 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex109 - loop $for-loop|0111 - local.get $0 - local.get $2 + block $__inlined_func$~lib/array/Array#findIndex171 + loop $for-loop|0174 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 6768 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex109 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findIndex171 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0111 + local.set $1 + br $for-loop|0174 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19552,25 +19583,25 @@ i32.const 3 i32.const 6800 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=132 global.get $~lib/memory/__stack_pointer i32.const 6848 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|0115 - local.get $1 + loop $for-loop|0182 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -19579,23 +19610,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 local.get $0 + local.get $1 i32.const 6848 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0115 + local.set $0 + br $for-loop|0182 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -19609,20 +19640,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6880 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex117 - loop $for-loop|0119 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex185 + loop $for-loop|0188 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -19631,23 +19662,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 local.get $0 + local.get $1 i32.const 6880 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex117 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex185 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0119 + local.set $0 + br $for-loop|0188 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -19663,20 +19694,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6912 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex121 - loop $for-loop|0123 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex191 + loop $for-loop|0194 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -19685,23 +19716,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 local.get $0 + local.get $1 i32.const 6912 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex121 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex191 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0123 + local.set $0 + br $for-loop|0194 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19717,20 +19748,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6944 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex125 - loop $for-loop|0127 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex197 + loop $for-loop|0200 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -19739,23 +19770,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 local.get $0 + local.get $1 i32.const 6944 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex125 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex197 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0127 + local.set $0 + br $for-loop|0200 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19772,53 +19803,53 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 6976 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0130 + local.set $0 + loop $for-loop|0205 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 6976 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0130 + local.set $1 + br $for-loop|0205 end end i32.const 1 @@ -19832,57 +19863,57 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every132 (result i32) + block $__inlined_func$~lib/array/Array#every209 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7008 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0134 + local.set $0 + loop $for-loop|0212 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7008 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every132 + br_if $__inlined_func$~lib/array/Array#every209 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0134 + local.set $1 + br $for-loop|0212 end end i32.const 1 @@ -19895,57 +19926,57 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every136 (result i32) + block $__inlined_func$~lib/array/Array#every216 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7040 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0138 + local.set $0 + loop $for-loop|0219 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7040 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every136 + br_if $__inlined_func$~lib/array/Array#every216 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0138 + local.set $1 + br $for-loop|0219 end end i32.const 1 @@ -19975,57 +20006,57 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every141 (result i32) + block $__inlined_func$~lib/array/Array#every225 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7072 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0143 + local.set $0 + loop $for-loop|0228 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7072 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every141 + br_if $__inlined_func$~lib/array/Array#every225 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0143 + local.set $1 + br $for-loop|0228 end end i32.const 1 @@ -20066,56 +20097,56 @@ local.get $0 call $~lib/array/Array#pop drop - block $__inlined_func$~lib/array/Array#every145 (result i32) + block $__inlined_func$~lib/array/Array#every232 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7104 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0147 - local.get $0 - local.get $2 + loop $for-loop|0235 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7104 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every145 + br_if $__inlined_func$~lib/array/Array#every232 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0147 + local.set $1 + br $for-loop|0235 end end i32.const 1 @@ -20162,52 +20193,52 @@ block $__inlined_func$~lib/array/Array#some (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7136 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0151 - local.get $0 - local.get $2 + loop $for-loop|0243 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7136 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0151 + local.set $1 + br $for-loop|0243 end end i32.const 0 @@ -20221,56 +20252,56 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some153 (result i32) + block $__inlined_func$~lib/array/Array#some247 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7168 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0155 + local.set $0 + loop $for-loop|0250 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7168 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some153 + br_if $__inlined_func$~lib/array/Array#some247 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0155 + local.set $1 + br $for-loop|0250 end end i32.const 0 @@ -20283,56 +20314,56 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some157 (result i32) + block $__inlined_func$~lib/array/Array#some254 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7200 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0159 + local.set $0 + loop $for-loop|0257 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some157 + br_if $__inlined_func$~lib/array/Array#some254 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0159 + local.set $1 + br $for-loop|0257 end end i32.const 0 @@ -20361,56 +20392,56 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some162 (result i32) + block $__inlined_func$~lib/array/Array#some263 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7232 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0164 + local.set $0 + loop $for-loop|0266 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some162 + br_if $__inlined_func$~lib/array/Array#some263 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0164 + local.set $1 + br $for-loop|0266 end end i32.const 0 @@ -20452,55 +20483,55 @@ local.get $0 call $~lib/array/Array#pop drop - block $__inlined_func$~lib/array/Array#some166 (result i32) + block $__inlined_func$~lib/array/Array#some270 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7264 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0168 - local.get $0 - local.get $2 + loop $for-loop|0273 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some166 + br_if $__inlined_func$~lib/array/Array#some270 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0168 + local.set $1 + br $for-loop|0273 end end i32.const 0 @@ -20547,49 +20578,49 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0172 - local.get $0 - local.get $2 + loop $for-loop|0281 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0172 + local.set $1 + br $for-loop|0281 end end global.get $std/array/i @@ -20608,49 +20639,49 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7328 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0176 + local.set $0 + loop $for-loop|0288 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0176 + local.set $1 + br $for-loop|0288 end end global.get $std/array/i @@ -20685,49 +20716,49 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store $0 local.get $0 i32.const 7360 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.load $0 offset=12 - local.set $2 - loop $for-loop|0181 + local.set $0 + loop $for-loop|0297 + local.get $1 local.get $0 local.get $2 - local.get $1 i32.load $0 offset=12 - local.tee $7 - local.get $2 - local.get $7 + local.tee $6 + local.get $0 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $2 i32.const 7360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0181 + local.set $1 + br $for-loop|0297 end end global.get $std/array/i @@ -20773,49 +20804,49 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0185 - local.get $0 - local.get $2 + loop $for-loop|0304 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0185 + local.set $1 + br $for-loop|0304 end end global.get $std/array/i @@ -20861,49 +20892,49 @@ call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store $0 offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0190 - local.get $0 - local.get $2 + loop $for-loop|0313 local.get $1 + local.get $2 + local.get $0 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 - local.get $7 + local.get $6 i32.lt_s select i32.lt_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $0 + local.get $6 local.get $1 + local.get $0 i32.const 7424 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0190 + local.set $1 + br $for-loop|0313 end end global.get $~lib/memory/__stack_pointer @@ -20923,23 +20954,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end @@ -20972,7 +21003,7 @@ i32.const 3 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -20989,84 +21020,84 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.const 2 i32.const 15 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.load $0 offset=4 - local.set $9 + local.set $8 i32.const 0 - local.set $0 - loop $for-loop|0194 - local.get $0 - local.get $7 + local.set $1 + loop $for-loop|019 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $9 + local.get $6 + local.get $9 i32.lt_s select i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $10 + local.tee $9 local.get $2 i32.load $0 offset=4 i32.add i32.load $0 - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $0 + local.get $10 + local.get $1 local.get $2 i32.const 9232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - local.tee $11 + local.tee $10 i32.store $0 offset=4 + local.get $8 local.get $9 - local.get $10 i32.add - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 if - local.get $8 - local.get $11 + local.get $7 + local.get $10 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0194 + local.set $1 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.store $0 offset=136 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -21083,72 +21114,72 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store $0 - local.get $0 + local.get $1 local.get $2 i32.load $0 offset=12 - local.tee $7 + local.tee $6 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.load $0 offset=4 - local.set $9 + local.set $8 i32.const 0 - local.set $0 - loop $for-loop|0197 - local.get $0 - local.get $7 + local.set $1 + loop $for-loop|022 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $9 + local.get $6 + local.get $9 i32.lt_s select i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $10 + local.tee $9 local.get $2 i32.load $0 offset=4 i32.add i32.load $0 - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength + local.get $8 local.get $9 - local.get $10 i32.add - local.get $11 - local.get $0 + local.get $10 + local.get $1 local.get $2 i32.const 9264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0197 + local.set $1 + br $for-loop|022 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.store $0 offset=140 - local.get $8 + local.get $7 i32.load $0 offset=12 i32.const 4 i32.ne @@ -21160,15 +21191,15 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $7 i32.const 0 call $~lib/array/Array#__get - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store $0 - local.get $6 + local.get $5 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -21508,50 +21539,50 @@ i32.const 9520 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0206 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0343 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9520 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0206 + local.set $1 + br $for-loop|0343 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -21573,50 +21604,50 @@ i32.const 9552 i32.store $0 offset=8 i32.const 4 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0210 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0350 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9552 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0210 + local.set $1 + br $for-loop|0350 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -21638,50 +21669,50 @@ i32.const 9584 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0214 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0357 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9584 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0214 + local.set $1 + br $for-loop|0357 end end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -21700,50 +21731,50 @@ i32.const 9616 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0218 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0364 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9616 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0218 + local.set $1 + br $for-loop|0364 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -21761,50 +21792,50 @@ i32.const 9648 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0222 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0371 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9648 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0222 + local.set $1 + br $for-loop|0371 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -21842,50 +21873,50 @@ i32.const 9680 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0227 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0380 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9680 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0227 + local.set $1 + br $for-loop|0380 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -21934,50 +21965,50 @@ i32.const 9712 i32.store $0 offset=8 i32.const 0 - local.set $1 - i32.const 0 local.set $0 + i32.const 0 + local.set $1 local.get $2 i32.load $0 offset=12 - local.set $7 - loop $for-loop|0231 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|0387 + local.get $1 + local.get $6 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select i32.lt_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $8 + local.set $7 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 + local.get $7 + local.get $1 local.get $2 i32.const 9712 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0231 + local.set $1 + br $for-loop|0387 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -22028,43 +22059,43 @@ i32.const 9744 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0235 - local.get $0 + local.set $1 + loop $for-loop|0395 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9744 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0235 + local.set $1 + br $for-loop|0395 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22086,43 +22117,43 @@ i32.const 9776 i32.store $0 offset=8 i32.const 4 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0239 - local.get $0 + local.set $1 + loop $for-loop|0401 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9776 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0239 + local.set $1 + br $for-loop|0401 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22144,43 +22175,43 @@ i32.const 9808 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0243 - local.get $0 + local.set $1 + loop $for-loop|0407 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9808 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0243 + local.set $1 + br $for-loop|0407 end end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -22199,43 +22230,43 @@ i32.const 9840 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0247 - local.get $0 + local.set $1 + loop $for-loop|0413 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9840 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0247 + local.set $1 + br $for-loop|0413 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -22253,43 +22284,43 @@ i32.const 9872 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0251 - local.get $0 + local.set $1 + loop $for-loop|0419 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9872 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0251 + local.set $1 + br $for-loop|0419 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22327,43 +22358,43 @@ i32.const 9904 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0256 - local.get $0 + local.set $1 + loop $for-loop|0427 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9904 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0256 + local.set $1 + br $for-loop|0427 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22412,43 +22443,43 @@ i32.const 9936 i32.store $0 offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0260 - local.get $0 + local.set $1 + loop $for-loop|0433 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $7 local.get $0 + local.get $6 + local.get $1 local.get $2 i32.const 9936 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0260 + local.set $1 + br $for-loop|0433 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22506,26 +22537,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.eqz select - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor @@ -22533,22 +22564,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor @@ -22991,12 +23022,12 @@ i32.const 11 i32.const 10384 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=268 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23008,25 +23039,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of144 - block $0of145 - block $outOfRange46 + block $1of154 + block $0of155 + block $outOfRange56 global.get $~argumentsLength - br_table $0of145 $1of144 $outOfRange46 + br_table $0of155 $1of154 $outOfRange56 end unreachable end i32.const 10480 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 10480 i32.store $0 end - local.get $0 + local.get $1 i32.load $0 offset=4 - local.get $0 - i32.load $0 offset=12 local.get $1 + i32.load $0 offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23043,39 +23074,39 @@ local.get $2 i32.store $0 offset=8 i32.const 0 - local.get $0 + local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $6 local.get $2 i32.load $0 offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $0 + local.get $1 local.get $2 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop i32.const 0 - local.set $1 - loop $for-loop|038 - local.get $1 - local.get $7 + local.set $0 + loop $for-loop|071 + local.get $0 + local.get $6 i32.lt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.ne if (result i32) local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.ne else i32.const 0 @@ -23083,15 +23114,15 @@ i32.eqz if i32.const 0 - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -23101,21 +23132,21 @@ br_if $__inlined_func$std/array/isArraysEqual drop i32.const 0 - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|038 + local.set $0 + br $for-loop|071 end end i32.const 1 @@ -23135,12 +23166,12 @@ i32.const 3 i32.const 10608 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=272 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23152,25 +23183,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1309 - block $0of1310 - block $outOfRange311 + block $1of173 + block $0of174 + block $outOfRange75 global.get $~argumentsLength - br_table $0of1310 $1of1309 $outOfRange311 + br_table $0of174 $1of173 $outOfRange75 end unreachable end i32.const 10656 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 10656 i32.store $0 end - local.get $0 + local.get $1 i32.load $0 offset=4 - local.get $0 - i32.load $0 offset=12 local.get $1 + i32.load $0 offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23181,12 +23212,12 @@ i32.const 3 i32.const 10688 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=8 local.get $0 + i32.store $0 offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23204,12 +23235,12 @@ i32.const 7 i32.const 10736 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=276 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23221,25 +23252,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1312 - block $0of1313 - block $outOfRange314 + block $1of176 + block $0of177 + block $outOfRange78 global.get $~argumentsLength - br_table $0of1313 $1of1312 $outOfRange314 + br_table $0of177 $1of176 $outOfRange78 end unreachable end i32.const 10784 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store $0 end - local.get $0 + local.get $1 i32.load $0 offset=4 - local.get $0 - i32.load $0 offset=12 local.get $1 + i32.load $0 offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23250,12 +23281,12 @@ i32.const 7 i32.const 10816 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=8 local.get $0 + i32.store $0 offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -23272,7 +23303,7 @@ i32.const 3 i32.const 10864 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store $0 offset=280 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -23280,7 +23311,7 @@ i32.const 3 i32.const 10896 call $~lib/rt/__newArray - local.tee $7 + local.tee $2 i32.store $0 offset=284 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -23288,7 +23319,7 @@ i32.const 3 i32.const 10928 call $~lib/rt/__newArray - local.tee $8 + local.tee $6 i32.store $0 offset=288 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23296,7 +23327,7 @@ i32.const 3 i32.const 10960 call $~lib/rt/__newArray - local.tee $9 + local.tee $7 i32.store $0 offset=292 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23304,48 +23335,48 @@ i32.const 3 i32.const 11008 call $~lib/rt/__newArray - local.tee $10 + local.tee $8 i32.store $0 offset=296 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $9 i32.store $0 offset=300 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $10 i32.store $0 offset=304 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $11 i32.store $0 offset=308 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $1 + local.tee $0 i32.store $0 offset=312 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $13 + local.tee $12 i32.store $0 offset=316 - local.get $2 + local.get $1 call $std/array/assertSortedDefault - local.get $7 + local.get $2 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 11088 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store $0 offset=8 - local.get $7 local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23357,19 +23388,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 3 i32.const 11120 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store $0 offset=8 - local.get $8 - local.get $2 + local.get $6 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23381,10 +23412,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $7 call $std/array/assertSortedDefault - local.get $9 - local.get $10 + local.get $7 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23396,10 +23427,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $9 call $std/array/assertSortedDefault - local.get $11 - local.get $10 + local.get $9 + local.get $8 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23411,10 +23442,10 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $10 call $std/array/assertSortedDefault - local.get $12 local.get $10 + local.get $8 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23426,10 +23457,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $11 call $std/array/assertSortedDefault - local.get $0 - local.get $10 + local.get $11 + local.get $8 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23441,10 +23472,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $std/array/assertSortedDefault - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23456,7 +23487,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $12 call $std/array/assertSortedDefault i32.const 0 local.set $0 @@ -23486,67 +23517,67 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $6 i32.const 0 i32.store $0 local.get $2 i32.load $0 offset=12 - local.tee $8 + local.tee $7 i32.const 0 - local.get $8 + local.get $7 i32.const 0 i32.le_s select - local.set $9 + local.set $8 + local.get $6 local.get $7 local.get $8 - local.get $9 i32.sub - local.tee $7 + local.tee $6 i32.const 0 - local.get $7 + local.get $6 i32.const 0 i32.gt_s select - local.tee $7 + local.tee $6 i32.const 2 i32.const 22 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.load $0 offset=4 - local.set $10 + local.set $9 local.get $2 i32.load $0 offset=4 - local.get $9 + local.get $8 i32.const 2 i32.shl i32.add local.set $2 - local.get $7 + local.get $6 i32.const 2 i32.shl - local.set $7 + local.set $6 loop $while-continue|01 local.get $0 - local.get $7 + local.get $6 i32.lt_u if local.get $0 - local.get $10 + local.get $9 i32.add local.get $0 local.get $2 i32.add i32.load $0 - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 if + local.get $7 local.get $8 - local.get $9 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -23562,19 +23593,19 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 11152 i32.store $0 offset=4 - local.get $8 + local.get $7 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.load $0 offset=12 i32.const 11152 call $~lib/util/sort/SORT local.get $1 - local.get $8 + local.get $7 i32.store $0 offset=12 i32.const 1 local.set $2 @@ -23594,32 +23625,32 @@ if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 local.get $0 call $~lib/array/Array#__get - local.tee $7 + local.tee $6 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $9 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 local.get $0 call $~lib/array/Array#__get - local.tee $9 + local.tee $8 i32.store $0 offset=20 - local.get $7 + local.get $6 i32.load $0 - local.get $9 + local.get $8 i32.load $0 i32.ne if (result i32) i32.const 1 else - local.get $7 + local.get $6 i32.load $0 offset=4 - local.get $9 + local.get $8 i32.load $0 offset=4 i32.ne end @@ -23685,7 +23716,7 @@ i32.const 11280 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -23695,10 +23726,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -23732,20 +23763,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 i32.const 32 @@ -23757,43 +23788,43 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 i32.const 0 - local.set $1 - loop $for-loop|0316 - local.get $1 + local.set $0 + loop $for-loop|080 + local.get $0 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $7 + local.tee $6 i32.store $0 offset=4 - local.get $7 + local.get $6 i32.const 0 i32.const 1 - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__set local.get $2 - local.get $1 - local.get $7 + local.get $0 + local.get $6 call $~lib/array/Array<~lib/array/Array>#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0316 + local.set $0 + br $for-loop|080 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=328 global.get $~lib/memory/__stack_pointer @@ -23803,9 +23834,9 @@ i32.const 11312 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -23827,50 +23858,50 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $6 i64.const 0 i64.store $0 - local.get $7 + local.get $6 i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 - local.get $7 + local.get $6 i32.const 0 i32.store $0 - local.get $7 + local.get $6 i32.const 0 i32.store $0 offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store $0 offset=8 - local.get $7 + local.get $6 i32.const 0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store $0 offset=4 + local.get $6 local.get $7 - local.get $8 i32.store $0 - local.get $8 + local.get $7 if + local.get $6 local.get $7 - local.get $8 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $6 local.get $7 - local.get $8 i32.store $0 offset=4 - local.get $7 + local.get $6 i32.const 2048 i32.store $0 offset=8 - local.get $7 + local.get $6 i32.const 512 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -23878,10 +23909,10 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $7 + local.get $6 i32.store $0 loop $for-loop|03 - local.get $1 + local.get $0 i32.const 512 i32.lt_s if @@ -23905,7 +23936,7 @@ i32.store $0 local.get $2 i32.const 511 - local.get $1 + local.get $0 i32.sub i32.store $0 global.get $~lib/memory/__stack_pointer @@ -23915,14 +23946,14 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $7 - local.get $1 + local.get $6 + local.get $0 local.get $2 call $~lib/array/Array<~lib/array/Array>#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end @@ -23930,13 +23961,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $7 + local.get $1 + local.get $6 i32.store $0 offset=332 global.get $~lib/memory/__stack_pointer i32.const 11344 i32.store $0 offset=8 - local.get $7 + local.get $6 i32.const 11344 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -23953,10 +23984,12 @@ i32.const 33 i32.const 11584 call $~lib/rt/__newArray - local.tee $2 + local.tee $6 i32.store $0 offset=340 i32.const 1 global.set $~argumentsLength + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23968,18 +24001,18 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of150 - block $0of151 - block $outOfRange52 + block $1of15 + block $0of16 + block $outOfRange7 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of151 $1of150 $outOfRange52 + br_table $0of16 $1of15 $outOfRange7 end unreachable end i32.const 11632 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11632 i32.store $0 @@ -24000,7 +24033,7 @@ i32.load $0 offset=4 local.get $0 i32.load $0 offset=12 - local.get $3 + local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer local.get $0 @@ -24021,7 +24054,7 @@ local.get $0 i32.load $0 offset=12 local.set $7 - loop $for-loop|053 + loop $for-loop|08 local.get $1 local.get $7 i32.lt_s @@ -24046,7 +24079,7 @@ global.set $~argumentsLength local.get $8 local.get $9 - local.get $3 + local.get $2 i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -24063,7 +24096,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|053 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -24103,8 +24136,8 @@ i64.store $0 local.get $0 i32.load $0 offset=12 - local.tee $1 - local.get $2 + local.tee $2 + local.get $6 i32.load $0 offset=12 i32.ne if @@ -24116,7 +24149,7 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end local.get $0 - local.get $2 + local.get $6 i32.eq if global.get $~lib/memory/__stack_pointer @@ -24127,21 +24160,21 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end i32.const 0 - local.set $3 - loop $for-loop|055 + local.set $1 + loop $for-loop|04 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if local.get $0 - local.get $3 + local.get $1 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 i32.store $0 - local.get $2 - local.get $3 + local.get $6 + local.get $1 call $~lib/array/Array#__get local.set $8 global.get $~lib/memory/__stack_pointer @@ -24159,11 +24192,11 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|055 + local.set $1 + br $for-loop|04 end end global.get $~lib/memory/__stack_pointer @@ -24183,12 +24216,12 @@ end global.get $~lib/memory/__stack_pointer call $std/array/createRandomStringArray - local.tee $0 + local.tee $1 i32.store $0 offset=344 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24200,24 +24233,24 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of158 - block $0of159 - block $outOfRange60 + block $1of1460 + block $0of1461 + block $outOfRange462 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of159 $1of158 $outOfRange60 + br_table $0of1461 $1of1460 $outOfRange462 end unreachable end i32.const 11664 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11664 i32.store $0 end - local.get $0 local.get $1 + local.get $0 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24239,7 +24272,7 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -24275,7 +24308,7 @@ if i32.const 11728 i32.const 11760 - local.get $3 + local.get $6 i32.load8_u $0 select local.set $0 @@ -24306,13 +24339,13 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|154 + loop $for-loop|159 local.get $2 local.get $7 i32.lt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u $0 local.tee $10 @@ -24358,10 +24391,10 @@ i32.const 1 i32.add local.set $2 - br $for-loop|154 + br $for-loop|159 end end - local.get $3 + local.get $6 local.get $7 i32.add i32.load8_u $0 @@ -24369,7 +24402,7 @@ i32.eqz i32.const 4 i32.add - local.set $3 + local.set $6 local.get $1 local.get $0 i32.const 1 @@ -24379,12 +24412,12 @@ i32.const 11760 local.get $2 select - local.get $3 + local.get $6 i32.const 1 i32.shl memory.copy $0 $0 local.get $0 - local.get $3 + local.get $6 i32.add local.tee $0 local.get $9 @@ -24737,7 +24770,7 @@ i32.const 3 i32.const 13920 call $~lib/rt/__newArray - local.tee $3 + local.tee $6 i32.store $0 offset=392 local.get $0 call $~lib/array/Array#toString @@ -24804,7 +24837,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $6 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -24915,7 +24948,7 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -24949,7 +24982,7 @@ local.get $7 i32.eqz if - local.get $3 + local.get $6 i32.load16_u $0 call $~lib/util/number/utoa32 local.set $0 @@ -24980,7 +25013,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|056 + loop $for-loop|060 local.get $2 local.get $7 i32.lt_s @@ -24990,7 +25023,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -25021,7 +25054,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|056 + br $for-loop|060 end end local.get $1 @@ -25029,7 +25062,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $7 i32.const 1 i32.shl @@ -25110,7 +25143,7 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -25144,7 +25177,7 @@ local.get $7 i32.eqz if - local.get $3 + local.get $6 i32.load16_s $0 call $~lib/util/number/itoa32 local.set $0 @@ -25175,7 +25208,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|057 + loop $for-loop|061 local.get $2 local.get $7 i32.lt_s @@ -25185,7 +25218,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -25216,7 +25249,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|057 + br $for-loop|061 end end local.get $1 @@ -25224,7 +25257,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $7 i32.const 1 i32.shl @@ -25385,7 +25418,7 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -25419,23 +25452,23 @@ local.get $7 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - local.get $3 - i64.load $0 - i64.extend32_s - local.set $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 16308 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $4 + local.get $6 + i64.load $0 + i64.extend32_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16308 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + block $__inlined_func$~lib/util/number/itoa64 + local.get $3 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -25443,26 +25476,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7648 + local.set $0 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 - local.get $4 + local.get $3 i64.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 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 $3 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.wrap_i64 local.tee $2 i32.const 100000 @@ -25510,68 +25544,68 @@ i32.add end end - local.tee $3 + local.tee $6 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 local.get $0 local.get $1 i32.add local.get $2 - local.get $3 + local.get $6 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $3 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $3 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $4 + local.get $3 i64.const 10000000000 i64.ge_u i32.add else - local.get $4 + local.get $3 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $4 + local.get $3 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $4 + local.get $3 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $3 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $4 + local.get $3 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $4 + local.get $3 i64.const 1000000000000000000 i64.ge_u i32.add @@ -25580,22 +25614,22 @@ local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 local.get $0 local.get $1 i32.add - local.get $4 + local.get $3 local.get $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 $0 end @@ -25603,9 +25637,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25633,7 +25665,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|058 + loop $for-loop|062 local.get $2 local.get $7 i32.lt_s @@ -25643,7 +25675,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $2 i32.const 3 i32.shl @@ -25674,7 +25706,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|058 + br $for-loop|062 end end local.get $1 @@ -25682,7 +25714,7 @@ i32.const 1 i32.shl i32.add - local.get $3 + local.get $6 local.get $7 i32.const 3 i32.shl @@ -25844,7 +25876,7 @@ local.set $2 local.get $1 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $1 i32.load $0 offset=12 local.set $1 @@ -25883,7 +25915,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.load $0 local.tee $0 i32.store $0 @@ -25911,13 +25943,13 @@ i32.const 1 i32.shr_u local.set $7 - loop $for-loop|059 + loop $for-loop|063 local.get $1 local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $2 i32.const 2 i32.shl @@ -25955,11 +25987,11 @@ i32.const 1 i32.add local.set $2 - br $for-loop|059 + br $for-loop|063 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -26062,7 +26094,7 @@ local.set $2 local.get $1 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $1 i32.load $0 offset=12 local.set $1 @@ -26101,7 +26133,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.load $0 local.tee $0 i32.store $0 @@ -26129,13 +26161,13 @@ i32.const 1 i32.shr_u local.set $7 - loop $for-loop|060 + loop $for-loop|064 local.get $1 local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $2 i32.const 2 i32.shl @@ -26173,11 +26205,11 @@ i32.const 1 i32.add local.set $2 - br $for-loop|060 + br $for-loop|064 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -26288,7 +26320,7 @@ local.set $2 local.get $1 i32.load $0 offset=4 - local.set $3 + local.set $6 local.get $1 i32.load $0 offset=12 local.set $1 @@ -26327,7 +26359,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.load $0 local.tee $0 i32.store $0 @@ -26355,13 +26387,13 @@ i32.const 1 i32.shr_u local.set $7 - loop $for-loop|061 + loop $for-loop|065 local.get $1 local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $2 i32.const 2 i32.shl @@ -26399,11 +26431,11 @@ i32.const 1 i32.add local.set $2 - br $for-loop|061 + br $for-loop|065 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -26506,9 +26538,9 @@ 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 $0 offset=456 - local.get $1 + local.get $0 i32.load $0 offset=12 i32.const 10 i32.ne @@ -26521,16 +26553,16 @@ 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 - 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 @@ -26540,10 +26572,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 @@ -26596,7 +26628,7 @@ local.get $1 i32.store $0 offset=468 global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -26610,21 +26642,21 @@ i64.store $0 local.get $1 i32.load $0 offset=4 - local.set $8 + local.set $7 local.get $1 i32.load $0 offset=12 - local.set $9 - i32.const 0 - local.set $1 + local.set $8 i32.const 0 local.set $0 - loop $for-loop|0320 - local.get $0 - local.get $9 + i32.const 0 + local.set $1 + loop $for-loop|083 + local.get $1 + local.get $8 i32.lt_s if - local.get $8 - local.get $0 + local.get $7 + local.get $1 i32.const 2 i32.shl i32.add @@ -26636,61 +26668,61 @@ else i32.const 0 end - local.get $1 - i32.add - local.set $1 local.get $0 - i32.const 1 i32.add local.set $0 - br $for-loop|0320 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|083 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $2 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 33 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store $0 offset=4 + local.get $10 local.get $0 - local.get $1 i32.store $0 offset=12 - local.get $0 - local.get $2 + local.get $10 + local.get $1 i32.store $0 offset=8 - local.get $0 local.get $10 + local.get $9 i32.store $0 offset=4 - local.get $0 local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if - local.get $0 local.get $10 + local.get $9 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 local.set $2 i32.const 0 - local.set $3 - loop $for-loop|1323 - local.get $3 - local.get $9 + local.set $1 + loop $for-loop|186 + local.get $1 + local.get $8 i32.lt_s if - local.get $8 - local.get $3 + local.get $7 + local.get $1 i32.const 2 i32.shl i32.add @@ -26698,7 +26730,7 @@ local.tee $11 if local.get $2 - local.get $10 + local.get $9 i32.add local.get $11 i32.load $0 offset=4 @@ -26713,47 +26745,46 @@ i32.add local.set $2 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|1323 + local.set $1 + br $for-loop|186 end end i32.const 0 - local.set $3 - loop $for-loop|2326 + local.set $1 + loop $for-loop|289 + local.get $0 local.get $1 - local.get $3 i32.gt_s if - local.get $10 - local.get $3 + local.get $9 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 local.tee $2 if - local.get $10 + local.get $9 local.get $2 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|2326 + local.set $1 + br $for-loop|289 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $0 - local.tee $1 + local.get $6 + local.get $10 i32.store $0 offset=472 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26761,9 +26792,9 @@ i32.const 33 i32.const 15728 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store $0 offset=476 - local.get $0 + local.get $10 i32.load $0 offset=12 i32.const 8 i32.ne @@ -26776,29 +26807,29 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|8 + local.get $1 local.get $0 - local.get $2 i32.load $0 offset=12 i32.lt_s if + local.get $10 local.get $1 - local.get $0 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 local.get $2 + i32.store $0 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 offset=8 - local.get $3 - local.get $7 + local.get $2 + local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -26809,10 +26840,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|8 end end @@ -26871,13 +26902,13 @@ i32.const 28 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store $0 offset=492 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load $0 offset=4 i32.store $0 offset=496 - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -26885,7 +26916,7 @@ i32.const 15856 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 2 @@ -26894,10 +26925,10 @@ call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - local.get $2 + local.get $1 i32.store $0 offset=500 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store $0 offset=348 @@ -26910,16 +26941,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 + local.get $0 local.get $1 - local.get $2 i32.load $0 offset=12 - local.tee $3 + local.tee $6 i32.const 2 i32.const 28 i32.const 0 @@ -26930,14 +26961,14 @@ i32.load $0 offset=4 local.set $8 i32.const 0 - local.set $1 - loop $for-loop|071 + local.set $0 + loop $for-loop|0485 + local.get $0 + local.get $6 local.get $1 - local.get $3 - local.get $2 i32.load $0 offset=12 local.tee $9 - local.get $3 + local.get $6 local.get $9 i32.lt_s select @@ -26945,11 +26976,11 @@ if global.get $~lib/memory/__stack_pointer local.tee $9 - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $10 - local.get $2 + local.get $1 i32.load $0 offset=4 i32.add i32.load $0 @@ -26959,8 +26990,8 @@ global.set $~argumentsLength local.get $9 local.get $11 + local.get $0 local.get $1 - local.get $2 i32.const 15920 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -26978,11 +27009,11 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|071 + local.set $0 + br $for-loop|0485 end end global.get $~lib/memory/__stack_pointer @@ -26992,7 +27023,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store $0 - local.get $0 + local.get $2 local.get $7 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 @@ -27073,12 +27104,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0333 + loop $while-continue|0491 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0333 + br $while-continue|0491 end end end diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index ba901e0d54..3378b51e0f 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -49,14 +49,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -68,9 +68,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -78,7 +82,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -130,7 +134,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -139,11 +143,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -162,7 +170,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -184,7 +192,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -205,6 +213,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -228,12 +244,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -252,7 +268,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -276,7 +292,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -355,36 +371,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -409,7 +441,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -509,10 +541,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -603,7 +635,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -656,7 +688,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -678,7 +710,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -686,7 +718,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -713,7 +745,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -721,7 +753,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -736,7 +768,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -931,7 +963,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1041,7 +1073,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1295,7 +1327,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1318,7 +1350,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1758,7 +1790,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1935,7 +1967,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2005,7 +2037,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2017,13 +2049,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2067,7 +2099,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2106,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2168,11 +2200,15 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array|null> (type $i32_=>_i32) (param $value i32) (result i32) i32.const 1 @@ -2386,23 +2422,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) @@ -2477,25 +2513,29 @@ i32.const 1 return ) - (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/dataview/DataView#constructor@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $buffer i32) (param $byteOffset i32) (param $byteLength i32) (result i32) block $2of2 block $1of2 @@ -2626,11 +2666,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -3187,7 +3231,7 @@ end i32.const 0 local.get $2 - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 76eff5b203..05d107ac89 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) @@ -55,14 +55,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -74,9 +74,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -84,7 +88,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -136,7 +140,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -145,11 +149,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -168,7 +176,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -190,7 +198,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -211,6 +219,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -234,12 +250,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -258,7 +274,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -282,7 +298,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -361,36 +377,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -415,7 +447,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -515,10 +547,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -609,7 +641,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -662,7 +694,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -684,7 +716,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -692,7 +724,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -719,7 +751,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -727,7 +759,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -742,7 +774,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -937,7 +969,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1047,7 +1079,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1301,7 +1333,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1324,7 +1356,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1764,7 +1796,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1941,7 +1973,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2011,7 +2043,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2023,13 +2055,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2073,7 +2105,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2112,14 +2144,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2242,29 +2274,37 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -2275,44 +2315,60 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add local.get $value i32.store8 $0 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer i32.sub ) + (func $~lib/dataview/DataView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/dataview/DataView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/dataview/DataView#getFloat32 (type $i32_i32_i32_=>_f32) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result f32) (local $3 i32) local.get $byteOffset @@ -2322,7 +2378,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2336,13 +2392,13 @@ local.get $littleEndian if (result f32) local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add f32.load $0 else local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load $0 @@ -2370,7 +2426,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2384,13 +2440,13 @@ local.get $littleEndian if (result f64) local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add f64.load $0 else local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i64.load $0 @@ -2424,7 +2480,7 @@ (func $~lib/dataview/DataView#getInt8 (type $i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (result i32) local.get $byteOffset local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.ge_u if i32.const 336 @@ -2435,7 +2491,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load8_s $0 @@ -2450,7 +2506,7 @@ i32.const 2 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2462,7 +2518,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load16_s $0 @@ -2493,7 +2549,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2505,7 +2561,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load $0 @@ -2539,7 +2595,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2551,7 +2607,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i64.load $0 @@ -2590,7 +2646,7 @@ (func $~lib/dataview/DataView#getUint8 (type $i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (result i32) local.get $byteOffset local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.ge_u if i32.const 336 @@ -2601,7 +2657,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load8_u $0 @@ -2616,7 +2672,7 @@ i32.const 2 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2628,7 +2684,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load16_u $0 @@ -2657,7 +2713,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2669,7 +2725,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i32.load $0 @@ -2703,7 +2759,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2715,7 +2771,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add i64.load $0 @@ -2760,7 +2816,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2774,14 +2830,14 @@ local.get $littleEndian if local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value f32.store $0 else local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value @@ -2810,7 +2866,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2824,14 +2880,14 @@ local.get $littleEndian if local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value f64.store $0 else local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value @@ -2866,7 +2922,7 @@ (func $~lib/dataview/DataView#setInt8 (type $i32_i32_i32_=>_none) (param $this i32) (param $byteOffset i32) (param $value i32) local.get $byteOffset local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.ge_u if i32.const 336 @@ -2877,7 +2933,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value @@ -2892,7 +2948,7 @@ i32.const 2 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2904,7 +2960,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -2933,7 +2989,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2945,7 +3001,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -2977,7 +3033,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -2989,7 +3045,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -3027,7 +3083,7 @@ (func $~lib/dataview/DataView#setUint8 (type $i32_i32_i32_=>_none) (param $this i32) (param $byteOffset i32) (param $value i32) local.get $byteOffset local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.ge_u if i32.const 336 @@ -3038,7 +3094,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $value @@ -3053,7 +3109,7 @@ i32.const 2 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -3065,7 +3121,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -3094,7 +3150,7 @@ i32.const 4 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -3106,7 +3162,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -3138,7 +3194,7 @@ i32.const 8 i32.add local.get $this - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.gt_s i32.or if @@ -3150,7 +3206,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $byteOffset i32.add local.get $littleEndian @@ -3210,11 +3266,15 @@ local.get $byteLength call $~lib/dataview/DataView#constructor ) + (func $~lib/dataview/DataView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/dataview/DataView#get:byteOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/dataview/DataView#get:dataStart local.get $this - i32.load $0 + call $~lib/dataview/DataView#get:buffer i32.sub ) (func $~lib/rt/itcms/__collect (type $none_=>_none) @@ -3431,7 +3491,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -3440,7 +3500,7 @@ local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $0 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength call $~lib/dataview/DataView#constructor local.tee $1 i32.store $0 offset=8 @@ -5035,7 +5095,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5062,7 +5122,7 @@ unreachable end local.get $1 - i32.load $0 offset=8 + call $~lib/dataview/DataView#get:byteLength i32.const 8 i32.eq i32.eqz diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 474c7d4a47..f211cfe46b 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1518,6 +1518,61 @@ memory.fill $0 local.get $1 ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 @@ -2363,7 +2418,7 @@ end local.get $0 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 i32.const 0 i32.store $0 offset=4 @@ -2378,13 +2433,7 @@ i32.store $0 offset=4 local.get $0 local.get $2 - i32.store $0 - local.get $2 - if - local.get $0 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 local.get $2 i32.store $0 offset=4 @@ -4072,7 +4121,7 @@ i32.store $0 local.get $3 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $3 i32.const 0 i32.store $0 offset=4 @@ -4101,13 +4150,7 @@ end local.get $3 local.get $0 - i32.store $0 - local.get $0 - if - local.get $3 - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $3 local.get $0 local.get $1 @@ -4141,53 +4184,4 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index ae9f6c345d..357ee70820 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) @@ -12,6 +12,7 @@ (type $i32_i32_i32_i32_i32_i32_i32_=>_i64 (func_subtype (param i32 i32 i32 i32 i32 i32 i32) (result i64) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) + (type $i32_=>_i64 (func_subtype (param i32) (result i64) func)) (type $i32_i64_=>_i64 (func_subtype (param i32 i64) (result i64) func)) (type $i32_i32_i32_i64_=>_i64 (func_subtype (param i32 i32 i32 i64) (result i64) func)) (type $i32_i64_i32_=>_none (func_subtype (param i32 i64 i32) func)) @@ -404,29 +405,29 @@ global.set $~lib/date/_month local.get $year ) - (func $~lib/date/Date#set:year (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/date/Date#set:year (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/date/Date#set:month (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/date/Date#set:month (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/date/Date#set:day (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/date/Date#set:day (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -438,9 +439,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -448,7 +453,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -500,7 +505,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -509,11 +514,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -532,7 +541,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -554,7 +563,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -575,6 +584,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -598,12 +615,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -622,7 +639,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -646,7 +663,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -725,36 +742,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -779,7 +812,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -879,10 +912,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -973,7 +1006,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1026,7 +1059,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1048,7 +1081,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1056,7 +1089,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1083,7 +1116,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1091,7 +1124,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1106,7 +1139,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1301,7 +1334,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1411,7 +1444,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1665,7 +1698,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1688,7 +1721,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2128,7 +2161,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2305,7 +2338,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2375,7 +2408,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2387,13 +2420,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2437,7 +2470,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2476,14 +2509,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2538,11 +2571,15 @@ memory.fill $0 local.get $ptr ) - (func $~lib/date/Date#set:epochMillis (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/date/Date#set:epochMillis (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=16 ) + (func $~lib/date/Date#get:epochMillis (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 offset=16 + ) (func $~lib/date/Date#setTime (type $i32_i64_=>_i64) (param $this i32) (param $time i64) (result i64) local.get $time call $~lib/date/invalidDate @@ -2569,12 +2606,24 @@ call $~lib/date/Date#set:day local.get $time ) + (func $~lib/date/Date#get:year (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/date/Date#get:month (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/date/Date#get:day (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/date/Date#getUTCHours (type $i32_=>_i32) (param $this i32) (result i32) (local $a i64) (local $b i64) (local $m i64) local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.set $a i32.const 86400000 i64.extend_i32_s @@ -2602,7 +2651,7 @@ (local $b i64) (local $m i64) local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.set $a i32.const 3600000 i64.extend_i32_s @@ -2630,7 +2679,7 @@ (local $b i64) (local $m i64) local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.set $a i32.const 60000 i64.extend_i32_s @@ -2658,7 +2707,7 @@ (local $b i64) (local $m i64) local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.set $a i32.const 1000 i64.extend_i32_s @@ -2682,7 +2731,7 @@ (func $~lib/date/Date#setUTCMilliseconds (type $i32_i32_=>_none) (param $this i32) (param $millis i32) local.get $this local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $millis local.get $this call $~lib/date/Date#getUTCMilliseconds @@ -2695,7 +2744,7 @@ (func $~lib/date/Date#setUTCSeconds (type $i32_i32_=>_none) (param $this i32) (param $seconds i32) local.get $this local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $seconds local.get $this call $~lib/date/Date#getUTCSeconds @@ -2710,7 +2759,7 @@ (func $~lib/date/Date#setUTCMinutes (type $i32_i32_=>_none) (param $this i32) (param $minutes i32) local.get $this local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $minutes local.get $this call $~lib/date/Date#getUTCMinutes @@ -2725,7 +2774,7 @@ (func $~lib/date/Date#setUTCHours (type $i32_i32_=>_none) (param $this i32) (param $hours i32) local.get $this local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $hours local.get $this call $~lib/date/Date#getUTCHours @@ -2771,7 +2820,7 @@ ) (func $~lib/date/Date#setUTCDate (type $i32_i32_=>_none) (param $this i32) (param $day i32) local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day local.get $day i32.eq if @@ -2779,19 +2828,19 @@ end local.get $this local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $day local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis call $~lib/date/join call $~lib/date/Date#setTime drop ) (func $~lib/date/Date#setUTCMonth (type $i32_i32_i32_=>_none) (param $this i32) (param $month i32) (param $day i32) local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $month i32.const 1 i32.add @@ -2801,13 +2850,13 @@ end local.get $this local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.get $month i32.const 1 i32.add local.get $day local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis call $~lib/date/join call $~lib/date/Date#setTime drop @@ -2824,7 +2873,7 @@ unreachable end local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day local.set $day end local.get $this @@ -2834,7 +2883,7 @@ ) (func $~lib/date/Date#setUTCFullYear (type $i32_i32_=>_none) (param $this i32) (param $year i32) local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.get $year i32.eq if @@ -2843,11 +2892,11 @@ local.get $this local.get $year local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day local.get $this - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis call $~lib/date/join call $~lib/date/Date#setTime drop @@ -3380,11 +3429,15 @@ local.get $radix call $~lib/util/number/itoa32 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -3511,7 +3564,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -3780,9 +3833,13 @@ end i32.const -1 ) - (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -3796,6 +3853,22 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -3807,7 +3880,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -3824,7 +3897,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -3832,7 +3905,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -3853,7 +3926,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -3875,7 +3948,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -3937,16 +4010,16 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $oldLen i32) (local $len i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ local.set $oldLen local.get $oldLen i32.const 1 @@ -3960,7 +4033,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $oldLen i32.const 2 i32.shl @@ -3978,7 +4051,7 @@ ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ ) (func $~lib/util/string/isSpace (type $i32_=>_i32) (param $c i32) (result i32) (local $1 i32) @@ -4431,7 +4504,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end loop $while-continue|0 @@ -4463,6 +4536,10 @@ local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__visit ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -4471,11 +4548,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -4504,7 +4581,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -4513,11 +4590,15 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -4654,7 +4735,7 @@ i32.const 36 memory.fill $0 local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.set $yr local.get $yr i32.const 0 @@ -4707,14 +4788,14 @@ i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 2 call $~lib/date/stringify local.tee $month i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 2 call $~lib/date/stringify local.tee $day @@ -4889,13 +4970,13 @@ local.tee $months i32.store $0 offset=4 local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.set $mo local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day local.set $da local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.set $yr local.get $yr local.get $mo @@ -5162,13 +5243,13 @@ local.tee $months i32.store $0 offset=4 local.get $this - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.set $mo local.get $this - i32.load $0 offset=8 + call $~lib/date/Date#get:day local.set $da local.get $this - i32.load $0 + call $~lib/date/Date#get:year local.set $yr local.get $yr local.get $mo @@ -5475,7 +5556,7 @@ local.tee $result i32.store $0 offset=8 local.get $result - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $resultStart i32.const 0 local.set $i @@ -5539,7 +5620,7 @@ local.tee $result|14 i32.store $0 offset=16 local.get $result|14 - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 2432 i32.store $0 local.get $result|14 @@ -6605,7 +6686,7 @@ local.get $57 local.set $58 local.get $58 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $56 i64.eq i32.eqz @@ -6626,7 +6707,7 @@ local.get $57 local.set $59 local.get $59 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis local.get $56 i64.const 1 i64.add @@ -6649,7 +6730,7 @@ local.get $60 local.set $61 local.get $61 - i32.load $0 + call $~lib/date/Date#get:year i32.const 189512 i32.eq i32.eqz @@ -6664,7 +6745,7 @@ local.get $60 local.set $62 local.get $62 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 11 @@ -6681,7 +6762,7 @@ local.get $60 local.set $63 local.get $63 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 14 i32.eq i32.eqz @@ -6754,7 +6835,7 @@ local.get $64 local.set $65 local.get $65 - i32.load $0 + call $~lib/date/Date#get:year i32.const 1973 i32.eq i32.eqz @@ -6769,7 +6850,7 @@ local.get $64 local.set $66 local.get $66 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 11 @@ -6786,7 +6867,7 @@ local.get $64 local.set $67 local.get $67 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 4 i32.eq i32.eqz @@ -6907,7 +6988,7 @@ local.get $68 local.set $69 local.get $69 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 399464523963000 i64.eq i32.eqz @@ -6925,7 +7006,7 @@ local.get $68 local.set $70 local.get $70 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 399464523963999 i64.eq i32.eqz @@ -6956,7 +7037,7 @@ local.get $68 local.set $71 local.get $71 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 399464523965000 i64.eq i32.eqz @@ -6987,7 +7068,7 @@ local.get $68 local.set $72 local.get $72 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 399464523963000 i64.eq i32.eqz @@ -7056,7 +7137,7 @@ local.get $73 local.set $74 local.get $74 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027318300986 i64.eq i32.eqz @@ -7074,7 +7155,7 @@ local.get $73 local.set $75 local.get $75 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027318359986 i64.eq i32.eqz @@ -7143,7 +7224,7 @@ local.get $76 local.set $77 local.get $77 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027315631986 i64.eq i32.eqz @@ -7161,7 +7242,7 @@ local.get $76 local.set $78 local.get $78 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027319171986 i64.eq i32.eqz @@ -7230,7 +7311,7 @@ local.get $79 local.set $80 local.get $80 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027257131986 i64.eq i32.eqz @@ -7248,7 +7329,7 @@ local.get $79 local.set $81 local.get $81 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 372027339931986 i64.eq i32.eqz @@ -7269,7 +7350,7 @@ local.get $82 local.set $83 local.get $83 - i32.load $0 + call $~lib/date/Date#get:year i32.const 1973 i32.eq i32.eqz @@ -7284,7 +7365,7 @@ local.get $82 local.set $84 local.get $84 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 11 @@ -7304,7 +7385,7 @@ local.get $82 local.set $85 local.get $85 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 12 i32.eq i32.eqz @@ -7322,7 +7403,7 @@ local.get $82 local.set $86 local.get $86 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 2 i32.eq i32.eqz @@ -7364,7 +7445,7 @@ local.get $82 local.set $87 local.get $87 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 2 @@ -7393,7 +7474,7 @@ local.get $82 local.set $88 local.get $88 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1709168591274 i64.eq i32.eqz @@ -7408,7 +7489,7 @@ local.get $82 local.set $89 local.get $89 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 1 @@ -7425,7 +7506,7 @@ local.get $82 local.set $90 local.get $90 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 29 i32.eq i32.eqz @@ -7488,7 +7569,7 @@ local.get $82 local.set $91 local.get $91 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1363748399999 i64.eq i32.eqz @@ -7506,7 +7587,7 @@ local.get $82 local.set $92 local.get $92 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1362106799999 i64.eq i32.eqz @@ -7524,7 +7605,7 @@ local.get $82 local.set $93 local.get $93 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1362106800000 i64.eq i32.eqz @@ -7546,7 +7627,7 @@ local.get $82 local.set $94 local.get $94 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1362110400000 i64.eq i32.eqz @@ -7570,7 +7651,7 @@ local.get $82 local.set $95 local.get $95 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1362114000001 i64.eq i32.eqz @@ -7594,7 +7675,7 @@ local.get $82 local.set $96 local.get $96 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 1362117600001 i64.eq i32.eqz @@ -7618,7 +7699,7 @@ local.get $82 local.set $97 local.get $97 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const -67301808726 i64.eq i32.eqz @@ -7642,7 +7723,7 @@ local.get $82 local.set $98 local.get $98 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 314240591274 i64.eq i32.eqz @@ -7661,11 +7742,11 @@ local.tee $99 i32.store $0 offset=32 local.get $99 - i32.load $0 + call $~lib/date/Date#get:year local.get $99 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $99 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 3 i32.eq @@ -7687,11 +7768,11 @@ local.tee $100 i32.store $0 offset=36 local.get $100 - i32.load $0 + call $~lib/date/Date#get:year local.get $100 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $100 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 2 i32.eq @@ -7715,11 +7796,11 @@ local.tee $101 i32.store $0 offset=40 local.get $101 - i32.load $0 + call $~lib/date/Date#get:year local.get $101 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $101 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 3 i32.eq @@ -7741,11 +7822,11 @@ local.tee $102 i32.store $0 offset=44 local.get $102 - i32.load $0 + call $~lib/date/Date#get:year local.get $102 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $102 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 4 i32.eq @@ -7765,11 +7846,11 @@ local.tee $103 i32.store $0 offset=48 local.get $103 - i32.load $0 + call $~lib/date/Date#get:year local.get $103 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $103 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 6 i32.eq @@ -7791,11 +7872,11 @@ local.tee $104 i32.store $0 offset=52 local.get $104 - i32.load $0 + call $~lib/date/Date#get:year local.get $104 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $104 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 5 i32.eq @@ -7819,11 +7900,11 @@ local.tee $105 i32.store $0 offset=56 local.get $105 - i32.load $0 + call $~lib/date/Date#get:year local.get $105 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $105 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 6 i32.eq @@ -7845,11 +7926,11 @@ local.tee $106 i32.store $0 offset=60 local.get $106 - i32.load $0 + call $~lib/date/Date#get:year local.get $106 - i32.load $0 offset=4 + call $~lib/date/Date#get:month local.get $106 - i32.load $0 offset=8 + call $~lib/date/Date#get:day call $~lib/date/dayOfWeek i32.const 0 i32.eq @@ -7871,7 +7952,7 @@ local.get $107 local.set $108 local.get $108 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 3 @@ -7894,7 +7975,7 @@ local.get $107 local.set $109 local.get $109 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 10 @@ -7917,7 +7998,7 @@ local.get $107 local.set $110 local.get $110 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 2 @@ -7934,7 +8015,7 @@ local.get $107 local.set $111 local.get $111 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 7899941177818720 i64.eq i32.eqz @@ -7955,7 +8036,7 @@ local.get $107 local.set $112 local.get $112 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 7899936080218720 i64.eq i32.eqz @@ -7976,7 +8057,7 @@ local.get $107 local.set $113 local.get $113 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 7899964937818720 i64.eq i32.eqz @@ -7997,7 +8078,7 @@ local.get $107 local.set $114 local.get $114 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 11 @@ -8014,7 +8095,7 @@ local.get $107 local.set $115 local.get $115 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 7899933401818720 i64.eq i32.eqz @@ -8035,7 +8116,7 @@ local.get $107 local.set $116 local.get $116 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 0 @@ -8052,7 +8133,7 @@ local.get $107 local.set $117 local.get $117 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 7899936080218720 i64.eq i32.eqz @@ -8073,7 +8154,7 @@ local.get $118 local.set $119 local.get $119 - i32.load $0 + call $~lib/date/Date#get:year i32.const 253616 i32.eq i32.eqz @@ -8091,7 +8172,7 @@ local.get $118 local.set $120 local.get $120 - i32.load $0 + call $~lib/date/Date#get:year i32.const 1976 i32.eq i32.eqz @@ -8109,7 +8190,7 @@ local.get $118 local.set $121 local.get $121 - i32.load $0 + call $~lib/date/Date#get:year i32.const 20212 i32.eq i32.eqz @@ -8127,7 +8208,7 @@ local.get $118 local.set $122 local.get $122 - i32.load $0 + call $~lib/date/Date#get:year i32.const 71 i32.eq i32.eqz @@ -8647,7 +8728,7 @@ local.get $127 local.set $128 local.get $128 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192067200000 i64.eq i32.eqz @@ -8672,7 +8753,7 @@ local.get $127 local.set $129 local.get $129 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192067200000 i64.eq i32.eqz @@ -8697,7 +8778,7 @@ local.get $127 local.set $130 local.get $130 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 11860387200000 i64.eq i32.eqz @@ -8722,7 +8803,7 @@ local.get $127 local.set $131 local.get $131 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192112496000 i64.eq i32.eqz @@ -8747,7 +8828,7 @@ local.get $127 local.set $132 local.get $132 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192112496456 i64.eq i32.eqz @@ -8772,7 +8853,7 @@ local.get $127 local.set $133 local.get $133 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192112496456 i64.eq i32.eqz @@ -8797,7 +8878,7 @@ local.get $127 local.set $134 local.get $134 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const -62167219200000 i64.eq i32.eqz @@ -8822,7 +8903,7 @@ local.get $127 local.set $135 local.get $135 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const -62135596800000 i64.eq i32.eqz @@ -8847,7 +8928,7 @@ local.get $127 local.set $136 local.get $136 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 189302400000 i64.eq i32.eqz @@ -8872,7 +8953,7 @@ local.get $127 local.set $137 local.get $137 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 191980800000 i64.eq i32.eqz @@ -8897,7 +8978,7 @@ local.get $127 local.set $138 local.get $138 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192067200000 i64.eq i32.eqz @@ -8922,7 +9003,7 @@ local.get $127 local.set $139 local.get $139 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192112440000 i64.eq i32.eqz @@ -8947,7 +9028,7 @@ local.get $127 local.set $140 local.get $140 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 192112496000 i64.eq i32.eqz @@ -8974,7 +9055,7 @@ local.get $141 local.set $143 local.get $143 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const -8640000000000000 i64.eq i32.eqz @@ -8989,7 +9070,7 @@ local.get $142 local.set $144 local.get $144 - i64.load $0 offset=16 + call $~lib/date/Date#get:epochMillis i64.const 8640000000000000 i64.eq i32.eqz @@ -9004,7 +9085,7 @@ local.get $141 local.set $145 local.get $145 - i32.load $0 + call $~lib/date/Date#get:year i32.const -271821 i32.eq i32.eqz @@ -9019,7 +9100,7 @@ local.get $142 local.set $146 local.get $146 - i32.load $0 + call $~lib/date/Date#get:year i32.const 275760 i32.eq i32.eqz @@ -9034,7 +9115,7 @@ local.get $141 local.set $147 local.get $147 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 3 @@ -9051,7 +9132,7 @@ local.get $142 local.set $148 local.get $148 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 8 @@ -9068,7 +9149,7 @@ local.get $141 local.set $149 local.get $149 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 20 i32.eq i32.eqz @@ -9083,7 +9164,7 @@ local.get $142 local.set $150 local.get $150 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 13 i32.eq i32.eqz @@ -9160,7 +9241,7 @@ local.get $152 local.set $153 local.get $153 - i32.load $0 + call $~lib/date/Date#get:year i32.const -271821 i32.eq i32.eqz @@ -9175,7 +9256,7 @@ local.get $152 local.set $154 local.get $154 - i32.load $0 offset=4 + call $~lib/date/Date#get:month i32.const 1 i32.sub i32.const 3 @@ -9192,7 +9273,7 @@ local.get $152 local.set $155 local.get $155 - i32.load $0 offset=8 + call $~lib/date/Date#get:day i32.const 20 i32.eq i32.eqz @@ -10146,7 +10227,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if i32.const 368 @@ -10158,7 +10239,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index c59cc41823..1c75bd6c61 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -26,11 +26,15 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 70021b6dd3..98b09123c4 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -6,12 +6,15 @@ (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) + (type $i32_=>_i64 (func_subtype (param i32) (result i64) func)) (type $i32_i64_i32_=>_i32 (func_subtype (param i32 i64 i32) (result i32) func)) (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) + (type $i32_=>_f32 (func_subtype (param i32) (result f32) func)) (type $i32_f32_i32_=>_i32 (func_subtype (param i32 f32 i32) (result i32) func)) (type $i32_f32_=>_i32 (func_subtype (param i32 f32) (result i32) func)) (type $i32_f32_=>_none (func_subtype (param i32 f32) func)) + (type $i32_=>_f64 (func_subtype (param i32) (result f64) func)) (type $i32_f64_i32_=>_i32 (func_subtype (param i32 f64 i32) (result i32) func)) (type $i32_f64_=>_i32 (func_subtype (param i32 f64) (result i32) func)) (type $i32_f64_=>_none (func_subtype (param i32 f64) func)) @@ -69,14 +72,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -88,9 +91,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -98,7 +105,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -150,7 +157,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -159,11 +166,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -182,7 +193,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -204,7 +215,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -225,6 +236,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -248,12 +267,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -272,7 +291,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -296,7 +315,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -375,36 +394,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -429,7 +464,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -529,10 +564,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -623,7 +658,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -676,7 +711,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -698,7 +733,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -706,7 +741,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -733,7 +768,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -741,7 +776,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -756,7 +791,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -951,7 +986,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1061,7 +1096,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1315,7 +1350,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1338,7 +1373,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1778,7 +1813,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1955,7 +1990,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2025,7 +2060,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2037,13 +2072,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2087,7 +2122,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2126,14 +2161,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2256,42 +2291,42 @@ end end ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -2360,15 +2395,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -2381,7 +2432,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -2389,7 +2440,8 @@ i32.eqz if (result i32) local.get $entry - i32.load8_s $0 + call $~lib/map/MapEntry#get:key + i32.extend8_s local.get $key i32.extend8_s i32.eq @@ -2420,19 +2472,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -2484,11 +2556,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -2505,7 +2577,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -2513,14 +2585,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_s $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -2566,7 +2638,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2592,39 +2664,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2634,6 +2710,18 @@ i32.const 0 drop ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2645,7 +2733,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2662,7 +2750,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2670,7 +2758,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2691,7 +2779,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2713,7 +2801,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2785,33 +2873,37 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2831,91 +2923,95 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -2926,7 +3022,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2937,11 +3033,15 @@ drop local.get $value ) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -2952,7 +3052,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2963,15 +3063,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -2984,7 +3100,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -2992,7 +3108,8 @@ i32.eqz if (result i32) local.get $entry - i32.load8_s $0 + call $~lib/map/MapEntry#get:key + i32.extend8_s local.get $key i32.extend8_s i32.eq @@ -3014,19 +3131,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=1 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 offset=1 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3078,11 +3215,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 8 i32.mul i32.add @@ -3099,7 +3236,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -3107,14 +3244,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_s $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load8_s $0 offset=1 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -3160,7 +3297,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3232,15 +3369,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -3253,7 +3406,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3261,7 +3414,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key local.get $key i32.eq else @@ -3282,19 +3435,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3346,11 +3519,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -3367,7 +3540,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -3375,14 +3548,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -3428,7 +3601,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3437,11 +3610,11 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -3462,18 +3635,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -3483,7 +3656,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -3492,9 +3665,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -3510,36 +3683,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -4024,42 +4167,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -4129,15 +4272,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -4150,7 +4309,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -4158,7 +4317,9 @@ i32.eqz if (result i32) local.get $entry - i32.load8_u $0 + call $~lib/map/MapEntry#get:key + i32.const 255 + i32.and local.get $key i32.const 255 i32.and @@ -4190,19 +4351,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4254,11 +4435,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -4275,7 +4456,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -4283,14 +4464,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_u $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -4336,7 +4517,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4362,39 +4543,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -4414,53 +4599,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -4471,7 +4660,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -4482,15 +4671,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -4503,7 +4708,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -4511,7 +4716,9 @@ i32.eqz if (result i32) local.get $entry - i32.load8_u $0 + call $~lib/map/MapEntry#get:key + i32.const 255 + i32.and local.get $key i32.const 255 i32.and @@ -4534,19 +4741,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 offset=1 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 offset=1 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4598,11 +4825,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 8 i32.mul i32.add @@ -4619,7 +4846,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -4627,14 +4854,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_u $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load8_u $0 offset=1 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -4680,7 +4907,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4689,7 +4916,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -4710,18 +4937,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -4731,7 +4958,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -4740,9 +4967,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -4758,36 +4985,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -5272,42 +5469,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -5376,15 +5573,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -5397,7 +5610,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -5405,7 +5618,8 @@ i32.eqz if (result i32) local.get $entry - i32.load16_s $0 + call $~lib/map/MapEntry#get:key + i32.extend16_s local.get $key i32.extend16_s i32.eq @@ -5436,19 +5650,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5500,11 +5734,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -5521,7 +5755,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -5529,14 +5763,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_s $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -5582,7 +5816,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5608,39 +5842,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -5660,53 +5898,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -5717,7 +5959,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -5728,15 +5970,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -5749,7 +6007,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -5757,7 +6015,8 @@ i32.eqz if (result i32) local.get $entry - i32.load16_s $0 + call $~lib/map/MapEntry#get:key + i32.extend16_s local.get $key i32.extend16_s i32.eq @@ -5779,19 +6038,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=2 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 offset=2 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5843,11 +6122,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 8 i32.mul i32.add @@ -5864,7 +6143,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -5872,14 +6151,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_s $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load16_s $0 offset=2 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -5925,7 +6204,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5934,7 +6213,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -5955,18 +6234,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -5976,7 +6255,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -5985,9 +6264,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -6003,36 +6282,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -6517,42 +6766,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -6622,15 +6871,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_u $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -6643,7 +6908,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -6651,7 +6916,9 @@ i32.eqz if (result i32) local.get $entry - i32.load16_u $0 + call $~lib/map/MapEntry#get:key + i32.const 65535 + i32.and local.get $key i32.const 65535 i32.and @@ -6683,19 +6950,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -6747,11 +7034,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -6768,7 +7055,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -6776,14 +7063,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_u $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -6829,7 +7116,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6855,39 +7142,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -6907,53 +7198,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -6964,7 +7259,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -6975,15 +7270,31 @@ drop local.get $value ) - (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) - (local $entry i32) - (local $4 i32) - (local $taggedNext i32) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 - local.get $hashCode + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_u $0 + ) + (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (local $entry i32) + (local $4 i32) + (local $taggedNext i32) + local.get $this + call $~lib/map/Map#get:buckets + local.get $hashCode + local.get $this + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -6996,7 +7307,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -7004,7 +7315,9 @@ i32.eqz if (result i32) local.get $entry - i32.load16_u $0 + call $~lib/map/MapEntry#get:key + i32.const 65535 + i32.and local.get $key i32.const 65535 i32.and @@ -7027,19 +7340,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 offset=2 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_u $0 offset=2 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -7091,11 +7424,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 8 i32.mul i32.add @@ -7112,7 +7445,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -7120,14 +7453,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_u $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load16_u $0 offset=2 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -7173,7 +7506,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7182,7 +7515,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -7203,18 +7536,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -7224,7 +7557,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -7233,9 +7566,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -7251,36 +7584,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -7793,11 +8096,11 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -7818,18 +8121,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -7839,7 +8142,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -7848,9 +8151,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -7866,36 +8169,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -8380,42 +8653,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -8483,15 +8756,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -8504,7 +8793,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -8512,7 +8801,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key local.get $key i32.eq else @@ -8542,19 +8831,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -8606,11 +8915,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -8627,7 +8936,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -8635,14 +8944,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -8688,7 +8997,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8714,39 +9023,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -8766,53 +9079,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -8823,7 +9140,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -8834,15 +9151,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -8855,7 +9188,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -8863,7 +9196,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key local.get $key i32.eq else @@ -8884,19 +9217,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -8948,11 +9301,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -8969,7 +9322,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -8977,14 +9330,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -9030,7 +9383,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9039,7 +9392,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -9060,18 +9413,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -9081,7 +9434,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -9090,9 +9443,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -9108,36 +9461,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) @@ -9622,42 +9945,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -9742,15 +10065,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -9763,7 +10102,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -9771,7 +10110,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key local.get $key i64.eq else @@ -9801,19 +10140,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -9865,11 +10224,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 16 i32.mul i32.add @@ -9886,7 +10245,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -9894,14 +10253,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -9947,7 +10306,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9973,39 +10332,43 @@ unreachable end local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -10025,53 +10388,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -10082,7 +10449,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -10093,15 +10460,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -10114,7 +10497,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -10122,7 +10505,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key local.get $key i64.eq else @@ -10143,23 +10526,43 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 - i64.store $0 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=16 + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 ) - (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value + i64.store $0 + ) + (func $~lib/map/MapEntry#get:value (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=16 + ) + (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) (local $newEntries i32) @@ -10207,11 +10610,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 24 i32.mul i32.add @@ -10228,7 +10631,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -10236,14 +10639,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i64.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -10289,7 +10692,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10298,7 +10701,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -10319,18 +10722,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -10340,7 +10743,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -10349,9 +10752,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -10367,36 +10770,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i64) @@ -10889,42 +11262,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -11009,15 +11382,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -11030,7 +11419,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -11038,7 +11427,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key local.get $key i64.eq else @@ -11068,19 +11457,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11132,11 +11541,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 16 i32.mul i32.add @@ -11153,7 +11562,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -11161,14 +11570,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -11214,7 +11623,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11240,39 +11649,43 @@ unreachable end local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -11292,53 +11705,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -11349,7 +11766,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -11360,15 +11777,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -11381,7 +11814,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -11389,7 +11822,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key local.get $key i64.eq else @@ -11410,19 +11843,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11474,11 +11927,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 24 i32.mul i32.add @@ -11495,7 +11948,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -11503,14 +11956,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i64.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -11556,7 +12009,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11565,7 +12018,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -11586,18 +12039,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -11607,7 +12060,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -11616,9 +12069,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -11634,36 +12087,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i64) @@ -12156,42 +12579,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f32_=>_i32) (param $key f32) (result i32) @@ -12260,15 +12683,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_f32) (param $this i32) (result f32) + local.get $this + f32.load $0 + ) (func $~lib/map/Map#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -12281,7 +12720,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -12289,7 +12728,7 @@ i32.eqz if (result i32) local.get $entry - f32.load $0 + call $~lib/map/MapEntry#get:key local.get $key f32.eq else @@ -12319,19 +12758,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -12383,11 +12842,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -12404,7 +12863,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -12412,14 +12871,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f32.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -12465,7 +12924,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12491,39 +12950,43 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -12543,53 +13006,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -12600,7 +13067,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -12611,15 +13078,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_f32) (param $this i32) (result f32) + local.get $this + f32.load $0 + ) (func $~lib/map/Map#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -12632,7 +13115,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -12640,7 +13123,7 @@ i32.eqz if (result i32) local.get $entry - f32.load $0 + call $~lib/map/MapEntry#get:key local.get $key f32.eq else @@ -12661,19 +13144,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_f32) (param $this i32) (result f32) + local.get $this + f32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -12725,11 +13228,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -12746,7 +13249,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -12754,14 +13257,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f32.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - f32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -12807,7 +13310,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12816,7 +13319,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_f32_=>_i32) (param $this i32) (param $key f32) (result i32) (local $entry i32) @@ -12837,18 +13340,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -12858,7 +13361,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -12867,9 +13370,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -12885,36 +13388,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k f32) @@ -13407,42 +13880,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f64_=>_i32) (param $key f64) (result i32) @@ -13528,15 +14001,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 + ) (func $~lib/map/Map#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -13549,7 +14038,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -13557,7 +14046,7 @@ i32.eqz if (result i32) local.get $entry - f64.load $0 + call $~lib/map/MapEntry#get:key local.get $key f64.eq else @@ -13587,19 +14076,39 @@ i32.const 0 i32.ne ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -13651,11 +14160,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 16 i32.mul i32.add @@ -13672,7 +14181,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13680,14 +14189,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -13733,7 +14242,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -13759,39 +14268,43 @@ unreachable end local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -13811,53 +14324,57 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -13868,7 +14385,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -13879,15 +14396,31 @@ drop local.get $value ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 + ) (func $~lib/map/Map#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -13900,7 +14433,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -13908,7 +14441,7 @@ i32.eqz if (result i32) local.get $entry - f64.load $0 + call $~lib/map/MapEntry#get:key local.get $key f64.eq else @@ -13929,19 +14462,39 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#get:value (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 offset=8 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -13993,11 +14546,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 24 i32.mul i32.add @@ -14014,7 +14567,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=16 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -14022,14 +14575,14 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f64.load $0 + call $~lib/map/MapEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey call $~lib/map/MapEntry#set:key local.get $newEntry local.get $oldEntry - f64.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -14075,7 +14628,7 @@ call $~lib/map/Map#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount call $~lib/map/Map#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -14084,7 +14637,7 @@ ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount ) (func $~lib/map/Map#delete (type $i32_f64_=>_i32) (param $this i32) (param $key f64) (result i32) (local $entry i32) @@ -14105,18 +14658,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.or call $~lib/map/MapEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.sub call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -14126,7 +14679,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -14135,9 +14688,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -14153,36 +14706,6 @@ end i32.const 1 ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k f64) @@ -14786,11 +15309,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14803,11 +15326,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -14816,11 +15343,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -14832,11 +15363,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14852,11 +15383,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14872,11 +15403,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14889,11 +15420,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -14905,11 +15440,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14925,11 +15460,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14942,11 +15477,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -14958,11 +15497,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14978,11 +15517,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -14995,11 +15534,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15011,11 +15554,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15031,11 +15574,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15048,11 +15591,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15064,11 +15611,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15084,11 +15631,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15101,11 +15648,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15117,11 +15668,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15137,11 +15688,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15154,11 +15705,15 @@ local.get $1 call $~lib/map/Map#__visit ) - (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) - i32.const 0 - drop + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 + ) + (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + i32.const 0 + drop + local.get $this + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15170,11 +15725,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15190,11 +15745,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15207,11 +15762,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15223,11 +15782,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15243,11 +15802,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15260,11 +15819,15 @@ local.get $1 call $~lib/map/Map#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -15276,11 +15839,11 @@ (func $~lib/map/Map#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 0 drop @@ -15505,62 +16068,1687 @@ unreachable end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) - (local $buffer i32) - (local $3 i32) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this i32.const 0 - i32.store $0 - local.get $length - i32.const 1073741820 - i32.gt_u + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz if - i32.const 432 - i32.const 480 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 - local.get $length i32.const 0 - call $~lib/rt/itcms/__new - local.tee $buffer i32.store $0 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $buffer - local.set $3 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 29 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (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 $0 + i64.const 0 + i64.store $0 local.get $this i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 3 + i32.const 31 call $~lib/rt/itcms/__new local.tee $this i32.store $0 @@ -15571,36 +17759,139 @@ i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets local.get $this i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $~lib/map/Map#set:bucketsMask local.get $this i32.const 0 i32.const 4 - i32.const 12 + i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries local.get $this i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $~lib/map/Map#set:entriesCapacity local.get $this i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $~lib/map/Map#set:entriesOffset local.get $this i32.const 0 - call $~lib/map/Map#set:entriesCount + call $~lib/map/Map#set:entriesCount local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) + (local $buffer i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $length + i32.const 1073741820 + i32.gt_u + if + i32.const 432 + i32.const 480 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $length + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store $0 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $buffer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -15633,16 +17924,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -15650,10 +17941,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -15663,13 +17954,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -15691,15 +17982,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -15830,10 +18121,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -15859,7 +18150,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -15872,7 +18163,7 @@ local.set $length local.get $8 local.get $entry - i32.load8_s $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -16002,10 +18293,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -16031,7 +18322,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -16044,7 +18335,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -16053,129 +18344,17 @@ local.set $i br $for-loop|0 end - end - local.get $values - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 + end + local.get $values + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -16209,16 +18388,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -16226,10 +18405,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -16239,13 +18418,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -16267,15 +18446,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -16329,16 +18508,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -16346,10 +18525,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -16359,13 +18538,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -16387,15 +18566,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -16417,62 +18596,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -16505,16 +18628,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -16522,10 +18645,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -16535,13 +18658,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -16563,15 +18686,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -16702,10 +18825,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -16731,7 +18854,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -16744,7 +18867,7 @@ local.set $length local.get $8 local.get $entry - i32.load8_u $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -16784,10 +18907,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -16813,7 +18936,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -16826,7 +18949,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -16847,62 +18970,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -16935,16 +19002,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -16952,10 +19019,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -16965,13 +19032,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -16993,15 +19060,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -17023,62 +19090,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -17111,16 +19122,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -17128,10 +19139,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -17141,13 +19152,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -17169,15 +19180,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -17308,10 +19319,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17337,7 +19348,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -17350,7 +19361,7 @@ local.set $length local.get $8 local.get $entry - i32.load16_s $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -17390,10 +19401,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17419,7 +19430,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -17432,82 +19443,26 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $values - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -17541,16 +19496,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -17558,10 +19513,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -17571,13 +19526,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -17599,15 +19554,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -17629,62 +19584,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -17717,16 +19616,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -17734,10 +19633,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -17747,13 +19646,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -17775,15 +19674,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -17914,10 +19813,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17943,7 +19842,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -17956,7 +19855,7 @@ local.set $length local.get $8 local.get $entry - i32.load16_u $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -17996,10 +19895,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -18025,7 +19924,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -18038,7 +19937,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -18059,62 +19958,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -18147,16 +19990,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -18164,10 +20007,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -18177,13 +20020,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -18205,15 +20048,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -18254,10 +20097,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -18283,7 +20126,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -18296,7 +20139,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -18336,10 +20179,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -18365,7 +20208,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -18378,7 +20221,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -18399,62 +20242,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -18487,16 +20274,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -18504,10 +20291,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -18517,13 +20304,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -18545,15 +20332,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -18684,10 +20471,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -18713,7 +20500,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -18726,7 +20513,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -18766,10 +20553,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -18795,7 +20582,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -18808,7 +20595,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -18822,68 +20609,12 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -18917,16 +20648,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -18934,10 +20665,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -18947,13 +20678,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -18975,15 +20706,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -19005,62 +20736,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -19093,16 +20768,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -19110,10 +20785,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -19123,13 +20798,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -19151,15 +20826,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -19290,10 +20965,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19319,7 +20994,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -19332,7 +21007,7 @@ local.set $length local.get $8 local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -19372,10 +21047,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19401,7 +21076,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -19414,7 +21089,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -19435,62 +21110,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i64_i64_=>_i32) (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) @@ -19523,16 +21142,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -19540,10 +21159,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -19553,13 +21172,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -19581,15 +21200,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -19611,62 +21230,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -19699,16 +21262,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -19716,10 +21279,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -19729,13 +21292,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -19757,15 +21320,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -19896,10 +21459,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19925,7 +21488,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -19938,7 +21501,7 @@ local.set $length local.get $8 local.get $entry - i64.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -19978,10 +21541,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -20007,7 +21570,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -20017,85 +21580,29 @@ local.tee $8 i32.const 1 i32.add - local.set $length - local.get $8 - local.get $entry - i32.load $0 offset=8 - call $~lib/array/Array#__uset - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $values - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 + local.set $length + local.get $8 + local.get $entry + call $~lib/map/MapEntry#get:value + call $~lib/array/Array#__uset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/map/Map#set (type $i32_i64_i64_=>_i32) (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) @@ -20129,16 +21636,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -20146,10 +21653,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -20159,13 +21666,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -20187,15 +21694,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -20217,62 +21724,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -20305,16 +21756,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -20322,10 +21773,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -20335,13 +21786,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -20363,15 +21814,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -20502,10 +21953,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -20531,7 +21982,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -20544,7 +21995,7 @@ local.set $length local.get $8 local.get $entry - f32.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -20584,10 +22035,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -20613,7 +22064,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -20626,7 +22077,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -20647,62 +22098,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_f32_f32_=>_i32) (param $this i32) (param $key f32) (param $value f32) (result i32) (local $hashCode i32) (local $entry i32) @@ -20735,16 +22130,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -20752,10 +22147,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -20765,13 +22160,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -20793,15 +22188,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -20823,62 +22218,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 29 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -20911,16 +22250,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -20928,10 +22267,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -20941,13 +22280,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -20969,15 +22308,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -21108,10 +22447,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -21137,7 +22476,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -21150,7 +22489,7 @@ local.set $length local.get $8 local.get $entry - f64.load $0 + call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -21190,10 +22529,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -21219,7 +22558,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=12 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -21232,7 +22571,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset end local.get $i @@ -21253,62 +22592,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 31 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map#set (type $i32_f64_f64_=>_i32) (param $this i32) (param $key f64) (param $value f64) (result i32) (local $hashCode i32) (local $entry i32) @@ -21341,16 +22624,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -21358,10 +22641,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -21371,13 +22654,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -21399,15 +22682,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 4ca77ca9de..2df02d4ad7 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -4,15 +4,15 @@ (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) - (type $i32_f64_=>_i32 (func_subtype (param i32 f64) (result i32) func)) (type $i32_i64_i32_=>_none (func_subtype (param i32 i64 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_f32_=>_i32 (func_subtype (param i32 f32) (result i32) func)) (type $i32_f32_=>_none (func_subtype (param i32 f32) func)) + (type $i32_f64_=>_i32 (func_subtype (param i32 f64) (result i32) func)) (type $i32_f64_=>_none (func_subtype (param i32 f64) func)) (type $i32_f32_i32_=>_none (func_subtype (param i32 f32 i32) func)) (type $i32_f64_i32_=>_none (func_subtype (param i32 f64 i32) func)) @@ -2179,43 +2179,6 @@ call $~lib/map/Map#rehash end ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $0 i32) - (local $1 i32) - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - ) (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -2249,7 +2212,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2258,63 +2221,71 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $2 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store $0 - local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $12 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2390,15 +2361,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2475,7 +2446,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2497,7 +2468,7 @@ br $for-loop|0 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -2516,9 +2487,9 @@ i32.const 100 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2595,7 +2566,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2610,15 +2581,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2695,7 +2666,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2717,7 +2688,7 @@ br $for-loop|1 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -2742,12 +2713,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $3 + local.get $12 i32.load $0 offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $12 i32.load $0 offset=16 - local.set $5 + local.set $4 local.get $0 i32.const 8 i32.sub @@ -2778,7 +2749,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -2791,33 +2762,33 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select - local.tee $6 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 i32.store $0 offset=8 local.get $2 - local.get $5 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2828,27 +2799,27 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 - local.get $5 - local.get $11 + loop $for-loop|01 + local.get $4 + local.get $10 i32.gt_s if - local.get $4 - local.get $11 + local.get $3 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if + local.get $0 local.get $2 i32.load $0 offset=4 - local.get $0 i32.add - local.get $6 + local.get $5 i32.load8_s $0 i32.store8 $0 local.get $0 @@ -2856,11 +2827,11 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 - br $for-loop|02 + local.set $10 + br $for-loop|01 end end local.get $2 @@ -2878,14 +2849,14 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $12 call $~lib/map/Map#values - local.tee $7 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2894,18 +2865,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new local.tee $13 i32.store $0 - local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if @@ -2916,10 +2891,14 @@ local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -2937,7 +2916,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2945,17 +2924,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $8 i32.store $0 offset=16 i32.const 0 - local.set $11 + local.set $10 loop $for-loop|2 - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -2967,19 +2946,19 @@ call $~lib/builtins/abort unreachable end + local.get $10 local.get $2 i32.load $0 offset=4 - local.get $11 i32.add i32.load8_s $0 local.set $14 - local.get $7 - local.get $11 + local.get $6 + local.get $10 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $7 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $14 i32.extend8_s @@ -3056,11 +3035,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $1 @@ -3104,7 +3083,7 @@ if local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -3118,7 +3097,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -3180,7 +3159,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $6 + local.tee $5 local.get $13 i32.load $0 offset=4 i32.and @@ -3272,7 +3251,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3280,7 +3259,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $4 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3288,37 +3267,37 @@ i32.store $0 offset=4 local.get $13 i32.load $0 offset=8 - local.tee $12 + local.tee $11 local.get $13 i32.load $0 offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $3 local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $12 + local.get $3 + local.get $11 i32.ne if - local.get $12 + local.get $11 i32.load $0 offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $12 + local.get $11 i32.load8_s $0 local.tee $16 i32.store8 $0 local.get $0 - local.get $12 + local.get $11 i32.load8_s $0 offset=1 i32.store8 $0 offset=1 local.get $0 - local.get $10 + local.get $9 local.get $15 local.get $16 i32.extend8_s @@ -3364,20 +3343,20 @@ i32.add local.set $0 end - local.get $12 + local.get $11 i32.const 8 i32.add - local.set $12 + local.set $11 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -3393,7 +3372,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $5 + local.get $4 i32.store $0 offset=12 local.get $13 local.get $13 @@ -3436,7 +3415,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $6 + local.get $5 local.get $13 i32.load $0 offset=4 i32.and @@ -3454,17 +3433,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end @@ -3480,7 +3459,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -3499,9 +3478,9 @@ i32.const 50 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3578,7 +3557,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -3593,12 +3572,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3681,7 +3660,7 @@ br $for-loop|3 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -3700,9 +3679,9 @@ i32.const 50 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3778,15 +3757,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3863,12 +3842,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3951,7 +3930,7 @@ br $for-loop|4 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -3963,9 +3942,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 call $~lib/map/Map#clear - local.get $3 + local.get $12 i32.load $0 offset=20 if i32.const 0 @@ -4398,7 +4377,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4407,63 +4386,71 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $2 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store $0 - local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $12 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4540,15 +4527,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4626,7 +4613,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4648,7 +4635,7 @@ br $for-loop|0 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -4667,9 +4654,9 @@ i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4747,7 +4734,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4762,15 +4749,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4848,7 +4835,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4870,7 +4857,7 @@ br $for-loop|1 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -4895,12 +4882,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $3 + local.get $12 i32.load $0 offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $12 i32.load $0 offset=16 - local.set $5 + local.set $4 local.get $0 i32.const 8 i32.sub @@ -4931,7 +4918,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -4944,33 +4931,33 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select - local.tee $6 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 i32.store $0 offset=8 local.get $2 - local.get $5 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4981,27 +4968,27 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 - local.get $5 - local.get $11 + loop $for-loop|01 + local.get $4 + local.get $10 i32.gt_s if - local.get $4 - local.get $11 + local.get $3 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if + local.get $0 local.get $2 i32.load $0 offset=4 - local.get $0 i32.add - local.get $6 + local.get $5 i32.load8_u $0 i32.store8 $0 local.get $0 @@ -5009,11 +4996,11 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 - br $for-loop|02 + local.set $10 + br $for-loop|01 end end local.get $2 @@ -5031,14 +5018,14 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $12 call $~lib/map/Map#values - local.tee $7 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5047,18 +5034,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 10 call $~lib/rt/itcms/__new local.tee $13 i32.store $0 - local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if @@ -5069,10 +5060,14 @@ local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -5090,7 +5085,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -5098,17 +5093,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $8 i32.store $0 offset=16 i32.const 0 - local.set $11 + local.set $10 loop $for-loop|2 - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -5120,19 +5115,19 @@ call $~lib/builtins/abort unreachable end + local.get $10 local.get $2 i32.load $0 offset=4 - local.get $11 i32.add i32.load8_u $0 local.set $14 - local.get $7 - local.get $11 + local.get $6 + local.get $10 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $7 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -5206,11 +5201,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $1 @@ -5255,7 +5250,7 @@ if local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -5269,7 +5264,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -5330,7 +5325,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $6 + local.tee $5 local.get $13 i32.load $0 offset=4 i32.and @@ -5420,7 +5415,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5428,7 +5423,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $4 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5436,37 +5431,37 @@ i32.store $0 offset=4 local.get $13 i32.load $0 offset=8 - local.tee $12 + local.tee $11 local.get $13 i32.load $0 offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $3 local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $12 + local.get $3 + local.get $11 i32.ne if - local.get $12 + local.get $11 i32.load $0 offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $12 + local.get $11 i32.load8_u $0 local.tee $16 i32.store8 $0 local.get $0 - local.get $12 + local.get $11 i32.load8_u $0 offset=1 i32.store8 $0 offset=1 local.get $0 - local.get $10 + local.get $9 local.get $15 local.get $16 i32.const -1028477379 @@ -5511,20 +5506,20 @@ i32.add local.set $0 end - local.get $12 + local.get $11 i32.const 8 i32.add - local.set $12 + local.set $11 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -5540,7 +5535,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $5 + local.get $4 i32.store $0 offset=12 local.get $13 local.get $13 @@ -5583,7 +5578,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $6 + local.get $5 local.get $13 i32.load $0 offset=4 i32.and @@ -5601,17 +5596,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end @@ -5627,7 +5622,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -5646,9 +5641,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5726,7 +5721,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -5741,12 +5736,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5830,7 +5825,7 @@ br $for-loop|3 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -5849,9 +5844,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5928,15 +5923,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -6014,12 +6009,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -6103,7 +6098,7 @@ br $for-loop|4 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -6115,9 +6110,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 call $~lib/map/Map#clear - local.get $3 + local.get $12 i32.load $0 offset=20 if i32.const 0 @@ -6549,7 +6544,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6558,63 +6553,71 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $2 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store $0 - local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $12 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6690,15 +6693,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6775,7 +6778,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -6797,7 +6800,7 @@ br $for-loop|0 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -6816,9 +6819,9 @@ i32.const 100 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6895,7 +6898,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -6910,15 +6913,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6995,7 +6998,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -7017,7 +7020,7 @@ br $for-loop|1 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -7042,12 +7045,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $3 + local.get $12 i32.load $0 offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $12 i32.load $0 offset=16 - local.set $5 + local.set $4 local.get $0 i32.const 8 i32.sub @@ -7078,7 +7081,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $4 i32.const 536870910 i32.gt_u if @@ -7091,35 +7094,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 1 i32.shl - local.tee $6 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 i32.store $0 offset=8 local.get $2 - local.get $5 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7130,17 +7133,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 - local.get $5 - local.get $11 + loop $for-loop|01 + local.get $4 + local.get $10 i32.gt_s if - local.get $4 - local.get $11 + local.get $3 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load $0 offset=8 i32.const 1 i32.and @@ -7152,7 +7155,7 @@ i32.const 1 i32.shl i32.add - local.get $6 + local.get $5 i32.load16_s $0 i32.store16 $0 local.get $0 @@ -7160,11 +7163,11 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 - br $for-loop|02 + local.set $10 + br $for-loop|01 end end local.get $2 @@ -7182,14 +7185,14 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $12 call $~lib/map/Map#values - local.tee $7 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7198,18 +7201,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 13 call $~lib/rt/itcms/__new local.tee $13 i32.store $0 - local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if @@ -7220,10 +7227,14 @@ local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -7241,7 +7252,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -7249,17 +7260,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $8 i32.store $0 offset=16 i32.const 0 - local.set $11 + local.set $10 loop $for-loop|2 - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -7273,19 +7284,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $11 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_s $0 local.set $14 - local.get $7 - local.get $11 + local.get $6 + local.get $10 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $7 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $14 i32.extend16_s @@ -7362,11 +7373,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $1 @@ -7410,7 +7421,7 @@ if local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -7424,7 +7435,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -7486,7 +7497,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $6 + local.tee $5 local.get $13 i32.load $0 offset=4 i32.and @@ -7578,7 +7589,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -7586,7 +7597,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $4 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7594,37 +7605,37 @@ i32.store $0 offset=4 local.get $13 i32.load $0 offset=8 - local.tee $12 + local.tee $11 local.get $13 i32.load $0 offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $3 local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $12 + local.get $3 + local.get $11 i32.ne if - local.get $12 + local.get $11 i32.load $0 offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $12 + local.get $11 i32.load16_s $0 local.tee $16 i32.store16 $0 local.get $0 - local.get $12 + local.get $11 i32.load16_s $0 offset=2 i32.store16 $0 offset=2 local.get $0 - local.get $10 + local.get $9 local.get $15 local.get $16 i32.extend16_s @@ -7670,20 +7681,20 @@ i32.add local.set $0 end - local.get $12 + local.get $11 i32.const 8 i32.add - local.set $12 + local.set $11 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -7699,7 +7710,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $5 + local.get $4 i32.store $0 offset=12 local.get $13 local.get $13 @@ -7742,7 +7753,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $6 + local.get $5 local.get $13 i32.load $0 offset=4 i32.and @@ -7760,17 +7771,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end @@ -7786,7 +7797,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -7805,9 +7816,9 @@ i32.const 50 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -7884,7 +7895,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -7899,12 +7910,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -7987,7 +7998,7 @@ br $for-loop|3 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -8006,9 +8017,9 @@ i32.const 50 i32.lt_s if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8084,15 +8095,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8169,12 +8180,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8257,7 +8268,7 @@ br $for-loop|4 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -8269,9 +8280,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 call $~lib/map/Map#clear - local.get $3 + local.get $12 i32.load $0 offset=20 if i32.const 0 @@ -8704,7 +8715,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8713,63 +8724,71 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $2 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store $0 - local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $12 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -8846,15 +8865,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -8932,7 +8951,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -8954,7 +8973,7 @@ br $for-loop|0 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -8973,9 +8992,9 @@ i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -9053,7 +9072,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -9068,15 +9087,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -9154,7 +9173,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -9176,7 +9195,7 @@ br $for-loop|1 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -9201,12 +9220,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $3 + local.get $12 i32.load $0 offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $12 i32.load $0 offset=16 - local.set $5 + local.set $4 local.get $0 i32.const 8 i32.sub @@ -9237,7 +9256,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $4 i32.const 536870910 i32.gt_u if @@ -9250,35 +9269,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 1 i32.shl - local.tee $6 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 i32.store $0 offset=8 local.get $2 - local.get $5 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9289,17 +9308,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 - local.get $5 - local.get $11 + loop $for-loop|01 + local.get $4 + local.get $10 i32.gt_s if - local.get $4 - local.get $11 + local.get $3 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load $0 offset=8 i32.const 1 i32.and @@ -9311,7 +9330,7 @@ i32.const 1 i32.shl i32.add - local.get $6 + local.get $5 i32.load16_u $0 i32.store16 $0 local.get $0 @@ -9319,11 +9338,11 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 - br $for-loop|02 + local.set $10 + br $for-loop|01 end end local.get $2 @@ -9341,14 +9360,14 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $12 call $~lib/map/Map#values - local.tee $7 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9357,18 +9376,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 16 call $~lib/rt/itcms/__new local.tee $13 i32.store $0 - local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if @@ -9379,10 +9402,14 @@ local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $13 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -9400,7 +9427,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -9408,17 +9435,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $8 i32.store $0 offset=16 i32.const 0 - local.set $11 + local.set $10 loop $for-loop|2 - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -9432,19 +9459,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $11 + local.get $10 i32.const 1 i32.shl i32.add i32.load16_u $0 local.set $14 - local.get $7 - local.get $11 + local.get $6 + local.get $10 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $7 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -9518,11 +9545,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $1 @@ -9567,7 +9594,7 @@ if local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -9581,7 +9608,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -9642,7 +9669,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $6 + local.tee $5 local.get $13 i32.load $0 offset=4 i32.and @@ -9732,7 +9759,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -9740,7 +9767,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $4 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9748,37 +9775,37 @@ i32.store $0 offset=4 local.get $13 i32.load $0 offset=8 - local.tee $12 + local.tee $11 local.get $13 i32.load $0 offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $3 local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $12 + local.get $3 + local.get $11 i32.ne if - local.get $12 + local.get $11 i32.load $0 offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $12 + local.get $11 i32.load16_u $0 local.tee $16 i32.store16 $0 local.get $0 - local.get $12 + local.get $11 i32.load16_u $0 offset=2 i32.store16 $0 offset=2 local.get $0 - local.get $10 + local.get $9 local.get $15 local.get $16 i32.const -1028477379 @@ -9823,20 +9850,20 @@ i32.add local.set $0 end - local.get $12 + local.get $11 i32.const 8 i32.add - local.set $12 + local.set $11 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -9852,7 +9879,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $5 + local.get $4 i32.store $0 offset=12 local.get $13 local.get $13 @@ -9895,7 +9922,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $6 + local.get $5 local.get $13 i32.load $0 offset=4 i32.and @@ -9913,17 +9940,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end @@ -9939,7 +9966,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -9958,9 +9985,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10038,7 +10065,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -10053,12 +10080,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10142,7 +10169,7 @@ br $for-loop|3 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -10161,9 +10188,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10240,15 +10267,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10326,12 +10353,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10415,7 +10442,7 @@ br $for-loop|4 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -10427,9 +10454,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 call $~lib/map/Map#clear - local.get $3 + local.get $12 i32.load $0 offset=20 if i32.const 0 @@ -11120,7 +11147,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $5 i32.lt_s @@ -11154,7 +11181,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $6 @@ -12280,7 +12307,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12289,63 +12316,71 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $2 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store $0 - local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=4 + local.get $12 + local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $3 + local.get $12 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $12 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12418,15 +12453,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12500,7 +12535,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12522,7 +12557,7 @@ br $for-loop|0 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -12541,9 +12576,9 @@ i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12617,7 +12652,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12632,15 +12667,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12714,7 +12749,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12736,7 +12771,7 @@ br $for-loop|1 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -12761,12 +12796,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $3 + local.get $12 i32.load $0 offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $12 i32.load $0 offset=16 - local.set $5 + local.set $4 local.get $0 i32.const 8 i32.sub @@ -12797,7 +12832,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if @@ -12810,35 +12845,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $6 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 if local.get $2 - local.get $7 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $6 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 i32.store $0 offset=8 local.get $2 - local.get $5 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12849,17 +12884,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 - local.get $5 - local.get $11 + loop $for-loop|01 + local.get $4 + local.get $10 i32.gt_s if - local.get $4 - local.get $11 + local.get $3 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $5 i32.load $0 offset=8 i32.const 1 i32.and @@ -12871,7 +12906,7 @@ i32.const 2 i32.shl i32.add - local.get $6 + local.get $5 i32.load $0 i32.store $0 local.get $0 @@ -12879,11 +12914,11 @@ i32.add local.set $0 end - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 - br $for-loop|02 + local.set $10 + br $for-loop|01 end end local.get $2 @@ -12901,14 +12936,14 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $12 call $~lib/map/Map#values - local.tee $7 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -12917,18 +12952,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new local.tee $13 i32.store $0 - local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if @@ -12939,10 +12978,14 @@ local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $13 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -12960,7 +13003,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -12968,17 +13011,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $8 i32.store $0 offset=16 i32.const 0 - local.set $11 + local.set $10 loop $for-loop|2 - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $11 + local.get $10 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -12992,19 +13035,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $11 + local.get $10 i32.const 2 i32.shl i32.add i32.load $0 local.set $14 - local.get $7 - local.get $11 + local.get $6 + local.get $10 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $7 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -13078,11 +13121,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $1 @@ -13125,7 +13168,7 @@ if local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -13137,7 +13180,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -13198,7 +13241,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $6 + local.tee $5 local.get $13 i32.load $0 offset=4 i32.and @@ -13219,9 +13262,9 @@ if (result i32) i32.const 0 else + local.get $14 local.get $0 i32.load $0 - local.get $14 i32.eq end br_if $__inlined_func$~lib/map/Map#find15 @@ -13288,7 +13331,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13296,7 +13339,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $4 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13304,37 +13347,37 @@ i32.store $0 offset=4 local.get $13 i32.load $0 offset=8 - local.tee $12 + local.tee $11 local.get $13 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $3 local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $12 + local.get $3 + local.get $11 i32.ne if - local.get $12 + local.get $11 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $12 + local.get $11 i32.load $0 local.tee $16 i32.store $0 local.get $0 - local.get $12 + local.get $11 i32.load $0 offset=4 i32.store $0 offset=4 local.get $0 - local.get $10 + local.get $9 local.get $15 local.get $16 i32.const -1028477379 @@ -13379,20 +13422,20 @@ i32.add local.set $0 end - local.get $12 + local.get $11 i32.const 12 i32.add - local.set $12 + local.set $11 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store $0 - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -13408,7 +13451,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $5 + local.get $4 i32.store $0 offset=12 local.get $13 local.get $13 @@ -13451,7 +13494,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $6 + local.get $5 local.get $13 i32.load $0 offset=4 i32.and @@ -13469,17 +13512,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $8 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end @@ -13495,7 +13538,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -13514,9 +13557,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13590,7 +13633,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#get local.get $0 @@ -13605,12 +13648,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13690,7 +13733,7 @@ br $for-loop|3 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -13709,9 +13752,9 @@ i32.const 50 i32.lt_u if - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13784,15 +13827,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13866,12 +13909,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 local.get $0 call $~lib/map/Map#delete - local.get $3 + local.get $12 i32.load $0 - local.get $3 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13951,7 +13994,7 @@ br $for-loop|4 end end - local.get $3 + local.get $12 i32.load $0 offset=20 i32.const 50 i32.ne @@ -13963,9 +14006,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $12 call $~lib/map/Map#clear - local.get $3 + local.get $12 i32.load $0 offset=20 if i32.const 0 @@ -13988,90 +14031,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (type $i32_i64_=>_i32) (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i64.load $0 - local.get $1 - i64.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - local.set $0 - end - local.get $0 - i32.const 0 - i32.ne - ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -14477,43 +14436,6 @@ call $~lib/map/Map#rehash end ) - (func $~lib/map/Map#clear (type $i32_=>_none) (param $0 i32) - (local $1 i32) - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - local.get $0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - ) (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -14527,8 +14449,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i32) + (local $12 i32) + (local $13 i64) (local $14 i32) (local $15 i32) (local $16 i32) @@ -14543,12 +14465,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $3 - i32.const 4 + local.get $0 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14556,64 +14478,148 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store $0 - local.get $4 + local.tee $3 + i64.const 0 + i64.store $0 + local.get $3 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store $0 - local.get $9 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=4 + local.get $10 + local.get $3 i32.store $0 - local.get $4 + local.get $3 if - local.get $9 - local.get $4 + local.get $10 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $10 i32.const 3 i32.store $0 offset=4 - local.get $9 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=4 + local.get $10 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 if - local.get $9 - local.get $4 + local.get $10 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $10 i32.const 4 i32.store $0 offset=12 - local.get $9 + local.get $10 i32.const 0 i32.store $0 offset=16 - local.get $9 + local.get $10 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $10 i32.store $0 loop $for-loop|0 local.get $2 i64.const 100 i64.lt_s if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -14622,16 +14628,92 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 local.get $2 i32.wrap_i64 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|05 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find1 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|05 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -14641,7 +14723,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -14664,7 +14746,7 @@ br $for-loop|0 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -14683,9 +14765,85 @@ i64.const 100 i64.lt_s if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find8 + loop $while-continue|012 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find8 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|012 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -14695,7 +14853,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -14711,16 +14869,92 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 local.get $2 i32.wrap_i64 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|019 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find15 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|019 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -14730,7 +14964,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -14753,7 +14987,7 @@ br $for-loop|1 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -14775,16 +15009,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.store $0 - local.get $9 + local.get $10 i32.load $0 offset=8 - local.set $5 - local.get $9 + local.set $4 + local.get $10 i32.load $0 offset=16 - local.set $6 - local.get $4 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14793,28 +15027,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store $0 - local.get $8 + local.get $6 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store $0 - local.get $10 + local.get $11 i32.const 0 i32.store $0 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=12 - local.get $6 + local.get $5 i32.const 134217727 i32.gt_u if @@ -14827,66 +15061,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $8 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $7 i32.store $0 offset=4 - local.get $10 local.get $11 + local.get $7 i32.store $0 - local.get $11 + local.get $7 if - local.get $10 local.get $11 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 local.get $11 + local.get $7 i32.store $0 offset=4 - local.get $10 - local.get $8 - i32.store $0 offset=8 - local.get $10 + local.get $11 local.get $6 + i32.store $0 offset=8 + local.get $11 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $10 + local.get $0 + local.get $11 i32.store $0 - loop $for-loop|02 + i32.const 0 + local.set $0 + loop $for-loop|04 local.get $1 - local.get $6 + local.get $5 i32.lt_s if - local.get $5 + local.get $4 local.get $1 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $6 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $11 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $4 + local.get $6 i64.load $0 i64.store $0 local.get $0 @@ -14898,14 +15134,14 @@ i32.const 1 i32.add local.set $1 - br $for-loop|02 + br $for-loop|04 end end - local.get $10 + local.get $11 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $10 + local.get $11 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -14913,17 +15149,17 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $10 + local.get $11 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 call $~lib/map/Map#values - local.tee $4 + local.tee $5 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14932,67 +15168,75 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $12 i32.store $0 - local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $12 + local.get $1 i32.store $0 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $11 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $12 + local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $11 + local.get $12 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $7 i32.store $0 offset=16 loop $for-loop|2 - local.get $7 - local.get $10 + local.get $8 + local.get $11 i32.load $0 offset=12 i32.lt_s if - local.get $7 - local.get $10 + local.get $8 + local.get $11 i32.load $0 offset=12 i32.ge_u if @@ -15003,21 +15247,97 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load $0 offset=4 - local.get $7 + local.get $8 i32.const 3 i32.shl i32.add i64.load $0 - local.set $12 - local.get $4 - local.get $7 + local.set $2 + local.get $5 + local.get $8 call $~lib/array/Array#__get - local.set $5 - local.get $9 - local.get $12 - call $~lib/map/Map#has + local.set $6 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find41 + loop $while-continue|045 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find41 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|045 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15027,12 +15347,89 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $5 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $6 i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + local.tee $13 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $13 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find48 + loop $while-continue|052 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $13 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find48 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|052 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15053,9 +15450,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $11 - i32.load $0 local.get $12 + i32.load $0 + local.get $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15065,7 +15462,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $12 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15095,8 +15492,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $3 - local.get $11 + local.tee $4 + local.get $12 i32.load $0 offset=4 i32.and i32.const 2 @@ -15105,7 +15502,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 + loop $while-continue|059 local.get $0 if local.get $0 @@ -15116,9 +15513,9 @@ if (result i32) i32.const 0 else + local.get $2 local.get $0 i64.load $0 - local.get $12 i64.eq end br_if $__inlined_func$~lib/map/Map#find @@ -15126,7 +15523,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|0 + br $while-continue|059 end end i32.const 0 @@ -15135,18 +15532,18 @@ local.get $0 if local.get $0 - local.get $12 + local.get $2 i64.store $0 offset=8 else - local.get $11 + local.get $12 i32.load $0 offset=16 - local.get $11 + local.get $12 i32.load $0 offset=12 i32.eq if - local.get $11 + local.get $12 i32.load $0 offset=20 - local.get $11 + local.get $12 i32.load $0 offset=12 i32.const 3 i32.mul @@ -15154,17 +15551,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $11 + local.get $12 i32.load $0 offset=4 else - local.get $11 + local.get $12 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $13 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15178,14 +15575,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $13 + local.get $14 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15193,16 +15590,16 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $3 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $11 + local.get $12 i32.load $0 offset=8 - local.tee $8 - local.get $11 + local.tee $9 + local.get $12 i32.load $0 offset=16 i32.const 24 i32.mul @@ -15211,29 +15608,29 @@ local.get $1 local.set $0 loop $while-continue|00 - local.get $8 + local.get $9 local.get $16 i32.ne if - local.get $8 + local.get $9 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $8 + local.get $9 i64.load $0 - local.tee $2 + local.tee $13 i64.store $0 local.get $0 - local.get $8 + local.get $9 i64.load $0 offset=8 i64.store $0 offset=8 local.get $0 + local.get $15 local.get $14 local.get $13 - local.get $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15243,7 +15640,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $13 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15288,39 +15685,39 @@ i32.add local.set $0 end - local.get $8 + local.get $9 i32.const 24 i32.add - local.set $8 + local.set $9 br $while-continue|00 end end - local.get $11 - local.get $14 + local.get $12 + local.get $15 i32.store $0 - local.get $14 + local.get $15 if - local.get $11 - local.get $14 + local.get $12 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $13 + local.get $12 + local.get $14 i32.store $0 offset=4 - local.get $11 + local.get $12 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $12 + local.get $3 i32.store $0 offset=12 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -15329,12 +15726,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.load $0 offset=8 local.tee $0 i32.store $0 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=16 local.tee $1 i32.const 1 @@ -15346,22 +15743,22 @@ i32.mul i32.add local.tee $0 - local.get $12 + local.get $2 i64.store $0 local.get $0 - local.get $12 + local.get $2 i64.store $0 offset=8 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 local.get $0 - local.get $11 + local.get $12 i32.load $0 - local.get $3 - local.get $11 + local.get $4 + local.get $12 i32.load $0 offset=4 i32.and i32.const 2 @@ -15378,21 +15775,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $7 local.get $6 - local.get $5 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|2 end end - local.get $11 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15404,7 +15801,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15423,9 +15820,85 @@ i64.const 50 i64.lt_s if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find80 + loop $while-continue|084 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find80 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|084 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15435,7 +15908,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -15451,12 +15924,88 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#delete - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find87 + loop $while-continue|091 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find87 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|091 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -15472,7 +16021,7 @@ br $for-loop|3 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 50 i32.ne @@ -15491,58 +16040,286 @@ i64.const 50 i64.lt_s if - local.get $9 - local.get $2 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $9 - local.get $2 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 local.get $2 i32.wrap_i64 - i32.const 10 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - call $~lib/map/Map#set - local.get $9 - local.get $2 - call $~lib/map/Map#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $9 - local.get $2 - call $~lib/map/Map#delete - local.get $9 - local.get $2 - call $~lib/map/Map#has - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - i64.const 1 - i64.add - local.set $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find96 + loop $while-continue|0100 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find96 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0100 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $10 + local.get $2 + local.get $2 + i32.wrap_i64 + local.tee $0 + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find103 + loop $while-continue|0107 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find103 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0107 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $10 + local.get $2 + call $~lib/map/Map#delete + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find110 + loop $while-continue|0114 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find110 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0114 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 br $for-loop|4 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 50 i32.ne @@ -15554,9 +16331,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 call $~lib/map/Map#clear - local.get $9 + local.get $10 i32.load $0 offset=20 if i32.const 0 @@ -15579,90 +16356,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (type $i32_i64_=>_i32) (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i64.load $0 - local.get $1 - i64.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - local.set $0 - end - local.get $0 - i32.const 0 - i32.ne - ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -16081,8 +16774,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i32) + (local $12 i32) + (local $13 i64) (local $14 i32) (local $15 i32) (local $16 i32) @@ -16097,12 +16790,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $3 - i32.const 4 + local.get $0 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16110,64 +16803,148 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store $0 - local.get $4 + local.tee $3 + i64.const 0 + i64.store $0 + local.get $3 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store $0 - local.get $9 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=4 + local.get $10 + local.get $3 i32.store $0 - local.get $4 + local.get $3 if - local.get $9 - local.get $4 + local.get $10 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $10 i32.const 3 i32.store $0 offset=4 - local.get $9 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=4 + local.get $10 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 if - local.get $9 - local.get $4 + local.get $10 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $10 i32.const 4 i32.store $0 offset=12 - local.get $9 + local.get $10 i32.const 0 i32.store $0 offset=16 - local.get $9 + local.get $10 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $10 i32.store $0 loop $for-loop|0 local.get $2 i64.const 100 i64.lt_u if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -16176,16 +16953,92 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 local.get $2 i32.wrap_i64 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|05 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find1 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|05 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -16195,7 +17048,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -16218,7 +17071,7 @@ br $for-loop|0 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -16237,9 +17090,85 @@ i64.const 100 i64.lt_u if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find8 + loop $while-continue|012 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find8 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|012 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -16249,7 +17178,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -16265,16 +17194,92 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 local.get $2 i32.wrap_i64 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|019 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $3 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find15 + local.get $3 + i32.const -2 + i32.and + local.set $0 + br $while-continue|019 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -16284,7 +17289,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 @@ -16307,7 +17312,7 @@ br $for-loop|1 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -16329,16 +17334,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.store $0 - local.get $9 + local.get $10 i32.load $0 offset=8 - local.set $5 - local.get $9 + local.set $4 + local.get $10 i32.load $0 offset=16 - local.set $6 - local.get $4 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16347,28 +17352,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store $0 - local.get $8 + local.get $6 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store $0 - local.get $10 + local.get $11 i32.const 0 i32.store $0 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=12 - local.get $6 + local.get $5 i32.const 134217727 i32.gt_u if @@ -16381,66 +17386,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $8 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $7 i32.store $0 offset=4 - local.get $10 local.get $11 + local.get $7 i32.store $0 - local.get $11 + local.get $7 if - local.get $10 local.get $11 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 local.get $11 + local.get $7 i32.store $0 offset=4 - local.get $10 - local.get $8 - i32.store $0 offset=8 - local.get $10 + local.get $11 local.get $6 + i32.store $0 offset=8 + local.get $11 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $10 + local.get $0 + local.get $11 i32.store $0 - loop $for-loop|02 + i32.const 0 + local.set $0 + loop $for-loop|04 local.get $1 - local.get $6 + local.get $5 i32.lt_s if - local.get $5 + local.get $4 local.get $1 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $6 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $11 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $4 + local.get $6 i64.load $0 i64.store $0 local.get $0 @@ -16452,14 +17459,14 @@ i32.const 1 i32.add local.set $1 - br $for-loop|02 + br $for-loop|04 end end - local.get $10 + local.get $11 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $10 + local.get $11 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -16467,17 +17474,17 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $10 + local.get $11 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 call $~lib/map/Map#values - local.tee $4 + local.tee $5 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16486,67 +17493,75 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $12 i32.store $0 - local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $12 + local.get $1 i32.store $0 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 3 i32.store $0 offset=4 - local.get $11 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $12 + local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 4 i32.store $0 offset=12 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=16 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $11 + local.get $12 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $7 i32.store $0 offset=16 loop $for-loop|2 - local.get $7 - local.get $10 + local.get $8 + local.get $11 i32.load $0 offset=12 i32.lt_s if - local.get $7 - local.get $10 + local.get $8 + local.get $11 i32.load $0 offset=12 i32.ge_u if @@ -16557,36 +17572,189 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load $0 offset=4 - local.get $7 + local.get $8 i32.const 3 i32.shl i32.add i64.load $0 - local.set $12 - local.get $4 - local.get $7 + local.set $2 + local.get $5 + local.get $8 call $~lib/array/Array#__get - local.set $5 - local.get $9 - local.get $12 - call $~lib/map/Map#has + local.set $6 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find41 + loop $while-continue|045 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find41 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|045 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + local.tee $13 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $13 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find48 + loop $while-continue|052 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $13 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find48 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|052 + end + end + i32.const 0 + local.set $0 end - local.get $9 - local.get $5 - i32.const 20 - i32.sub - i64.extend_i32_s - call $~lib/map/Map#has + local.get $0 i32.eqz if i32.const 0 @@ -16607,9 +17775,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $11 - i32.load $0 local.get $12 + i32.load $0 + local.get $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16619,7 +17787,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $12 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16649,8 +17817,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $3 - local.get $11 + local.tee $4 + local.get $12 i32.load $0 offset=4 i32.and i32.const 2 @@ -16659,7 +17827,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 + loop $while-continue|059 local.get $0 if local.get $0 @@ -16670,9 +17838,9 @@ if (result i32) i32.const 0 else + local.get $2 local.get $0 i64.load $0 - local.get $12 i64.eq end br_if $__inlined_func$~lib/map/Map#find @@ -16680,7 +17848,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|0 + br $while-continue|059 end end i32.const 0 @@ -16689,18 +17857,18 @@ local.get $0 if local.get $0 - local.get $12 + local.get $2 i64.store $0 offset=8 else - local.get $11 + local.get $12 i32.load $0 offset=16 - local.get $11 + local.get $12 i32.load $0 offset=12 i32.eq if - local.get $11 + local.get $12 i32.load $0 offset=20 - local.get $11 + local.get $12 i32.load $0 offset=12 i32.const 3 i32.mul @@ -16708,17 +17876,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $11 + local.get $12 i32.load $0 offset=4 else - local.get $11 + local.get $12 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $13 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16732,14 +17900,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $13 + local.get $14 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16747,16 +17915,16 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $3 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $11 + local.get $12 i32.load $0 offset=8 - local.tee $8 - local.get $11 + local.tee $9 + local.get $12 i32.load $0 offset=16 i32.const 24 i32.mul @@ -16765,29 +17933,29 @@ local.get $1 local.set $0 loop $while-continue|00 - local.get $8 + local.get $9 local.get $16 i32.ne if - local.get $8 + local.get $9 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $8 + local.get $9 i64.load $0 - local.tee $2 + local.tee $13 i64.store $0 local.get $0 - local.get $8 + local.get $9 i64.load $0 offset=8 i64.store $0 offset=8 local.get $0 + local.get $15 local.get $14 local.get $13 - local.get $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16797,7 +17965,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $13 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16842,39 +18010,39 @@ i32.add local.set $0 end - local.get $8 + local.get $9 i32.const 24 i32.add - local.set $8 + local.set $9 br $while-continue|00 end end - local.get $11 - local.get $14 + local.get $12 + local.get $15 i32.store $0 - local.get $14 + local.get $15 if - local.get $11 - local.get $14 + local.get $12 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $13 + local.get $12 + local.get $14 i32.store $0 offset=4 - local.get $11 + local.get $12 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $12 + local.get $3 i32.store $0 offset=12 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -16883,12 +18051,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.load $0 offset=8 local.tee $0 i32.store $0 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=16 local.tee $1 i32.const 1 @@ -16900,22 +18068,22 @@ i32.mul i32.add local.tee $0 - local.get $12 + local.get $2 i64.store $0 local.get $0 - local.get $12 + local.get $2 i64.store $0 offset=8 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 local.get $0 - local.get $11 + local.get $12 i32.load $0 - local.get $3 - local.get $11 + local.get $4 + local.get $12 i32.load $0 offset=4 i32.and i32.const 2 @@ -16932,21 +18100,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $7 local.get $6 - local.get $5 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|2 end end - local.get $11 + local.get $12 i32.load $0 offset=20 i32.const 100 i32.ne @@ -16958,7 +18126,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 i32.load $0 offset=20 i32.const 100 i32.ne @@ -16977,9 +18145,85 @@ i64.const 50 i64.lt_u if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find80 + loop $while-continue|084 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find80 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|084 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -16989,28 +18233,104 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 call $~lib/map/Map#get local.get $2 i32.wrap_i64 i32.const 20 i32.add - i32.ne - if + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $10 + local.get $2 + call $~lib/map/Map#delete + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find87 + loop $while-continue|091 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find87 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|091 + end + end i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $9 - local.get $2 - call $~lib/map/Map#delete - local.get $9 - local.get $2 - call $~lib/map/Map#has + local.get $0 if i32.const 0 i32.const 1568 @@ -17026,7 +18346,7 @@ br $for-loop|3 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 50 i32.ne @@ -17045,9 +18365,85 @@ i64.const 50 i64.lt_u if - local.get $9 + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $2 - call $~lib/map/Map#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find96 + loop $while-continue|0100 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find96 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0100 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -17056,31 +18452,183 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 local.get $2 local.get $2 i32.wrap_i64 + local.tee $0 i32.const 10 i32.add - call $~lib/map/Map#set - local.get $9 - local.get $2 - call $~lib/map/Map#has - i32.eqz - if + call $~lib/map/Map#set + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find103 + loop $while-continue|0107 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find103 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0107 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $10 + local.get $2 + call $~lib/map/Map#delete + local.get $10 + i32.load $0 + local.get $10 + i32.load $0 offset=4 + local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find110 + loop $while-continue|0114 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/map/Map#find110 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0114 + end + end i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $9 - local.get $2 - call $~lib/map/Map#delete - local.get $9 - local.get $2 - call $~lib/map/Map#has + local.get $0 if i32.const 0 i32.const 1568 @@ -17096,7 +18644,7 @@ br $for-loop|4 end end - local.get $9 + local.get $10 i32.load $0 offset=20 i32.const 50 i32.ne @@ -17108,9 +18656,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $10 call $~lib/map/Map#clear - local.get $9 + local.get $10 i32.load $0 offset=20 if i32.const 0 @@ -17539,7 +19087,7 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17548,18 +19096,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $4 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new local.tee $9 i32.store $0 - local.get $9 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 offset=4 + local.get $9 + local.get $4 i32.store $0 local.get $4 if @@ -17570,10 +19122,14 @@ local.get $9 i32.const 3 i32.store $0 offset=4 - local.get $9 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 offset=4 + local.get $9 + local.get $4 i32.store $0 offset=8 local.get $4 if @@ -17591,7 +19147,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -18115,7 +19671,7 @@ local.get $4 local.get $10 i32.store $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -18149,7 +19705,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $10 @@ -18174,7 +19730,7 @@ global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18183,18 +19739,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 28 call $~lib/rt/itcms/__new local.tee $11 i32.store $0 - local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $11 + local.get $1 i32.store $0 local.get $1 if @@ -18205,10 +19765,14 @@ local.get $11 i32.const 3 i32.store $0 offset=4 - local.get $11 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $11 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -18226,7 +19790,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -18487,9 +20051,9 @@ if (result i32) i32.const 0 else + local.get $2 local.get $0 f32.load $0 - local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find15 @@ -19189,167 +20753,80 @@ if local.get $1 i32.load $0 offset=8 - local.tee $0 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - f32.load $0 - local.get $2 - f32.eq - end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 - i32.const -2 - i32.and - local.set $1 - br $while-continue|031 - end - end - i32.const 0 - local.set $1 - end - local.get $1 - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - f32.const 1 - f32.add - local.set $2 - br $for-loop|4 - end - end - local.get $9 - i32.load $0 offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/map/Map#clear - local.get $9 - i32.load $0 offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34816 - i32.const 34864 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#has (type $i32_f64_=>_i32) (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=12 - local.tee $3 - i32.const 1 - i32.and - if (result i32) + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + f32.load $0 + local.get $2 + f32.eq + end + br_if $__inlined_func$~lib/map/Map#find30 + local.get $0 + i32.const -2 + i32.and + local.set $1 + br $while-continue|031 + end + end i32.const 0 - else - local.get $0 - f64.load $0 - local.get $1 - f64.eq + local.set $1 end - br_if $__inlined_func$~lib/map/Map#find - local.get $3 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + f32.const 1 + f32.add + local.set $2 + br $for-loop|4 end end - i32.const 0 - local.set $0 + local.get $9 + i32.load $0 offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/map/Map#clear + local.get $9 + i32.load $0 offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.const 0 - i32.ne + i32.const 34816 + i32.const 34864 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) @@ -19779,8 +21256,8 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 f64) - (local $14 i32) + (local $13 i32) + (local $14 f64) (local $15 i32) (local $16 i32) (local $17 i32) @@ -19795,12 +21272,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $4 - i32.const 4 + local.get $0 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19808,82 +21285,246 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store $0 - local.get $5 + local.tee $4 + i64.const 0 + i64.store $0 + local.get $4 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store $0 - local.get $10 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 offset=4 + local.get $11 + local.get $4 i32.store $0 - local.get $5 + local.get $4 if - local.get $10 - local.get $5 + local.get $11 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $11 i32.const 3 i32.store $0 offset=4 - local.get $10 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 offset=4 + local.get $11 + local.get $4 i32.store $0 offset=8 - local.get $5 + local.get $4 if - local.get $10 - local.get $5 + local.get $11 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $11 i32.const 4 i32.store $0 offset=12 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=16 - local.get $10 + local.get $11 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $10 + local.get $0 + local.get $11 i32.store $0 loop $for-loop|0 local.get $3 f64.const 100 f64.lt if - local.get $10 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 local.get $3 - call $~lib/map/Map#has + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $11 + local.get $3 + local.get $3 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $3 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|05 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find1 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|05 + end + end + i32.const 0 + local.set $0 end - local.get $10 - local.get $3 - local.get $3 - i32.trunc_sat_f64_s - i32.const 10 - i32.add - call $~lib/map/Map#set - local.get $10 - local.get $3 - call $~lib/map/Map#has + local.get $0 i32.eqz if i32.const 0 @@ -19893,7 +21534,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -19916,7 +21557,7 @@ br $for-loop|0 end end - local.get $10 + local.get $11 i32.load $0 offset=20 i32.const 100 i32.ne @@ -19935,9 +21576,87 @@ f64.const 100 f64.lt if - local.get $10 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 local.get $3 - call $~lib/map/Map#has + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find8 + loop $while-continue|012 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find8 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|012 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -19947,7 +21666,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -19963,16 +21682,94 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 local.get $3 i32.trunc_sat_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $10 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 local.get $3 - call $~lib/map/Map#has + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|019 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find15 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|019 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -19982,7 +21779,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -20005,7 +21802,7 @@ br $for-loop|1 end end - local.get $10 + local.get $11 i32.load $0 offset=20 i32.const 100 i32.ne @@ -20027,16 +21824,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $0 i32.const 0 i32.store $0 - local.get $10 + local.get $11 i32.load $0 offset=8 - local.set $6 - local.get $10 + local.set $5 + local.get $11 i32.load $0 offset=16 - local.set $7 - local.get $5 + local.set $6 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -20045,28 +21842,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $7 i64.const 0 i64.store $0 - local.get $9 + local.get $7 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $12 i32.store $0 - local.get $11 + local.get $12 i32.const 0 i32.store $0 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=4 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=8 - local.get $11 + local.get $12 i32.const 0 i32.store $0 offset=12 - local.get $7 + local.get $6 i32.const 134217727 i32.gt_u if @@ -20079,66 +21876,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $9 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $8 i32.store $0 offset=4 - local.get $11 local.get $12 + local.get $8 i32.store $0 - local.get $12 + local.get $8 if - local.get $11 local.get $12 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 local.get $12 + local.get $8 i32.store $0 offset=4 - local.get $11 - local.get $9 - i32.store $0 offset=8 - local.get $11 + local.get $12 local.get $7 + i32.store $0 offset=8 + local.get $12 + local.get $6 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $11 + local.get $0 + local.get $12 i32.store $0 - loop $for-loop|02 + i32.const 0 + local.set $0 + loop $for-loop|04 local.get $1 - local.get $7 + local.get $6 i32.lt_s if - local.get $6 + local.get $5 local.get $1 i32.const 4 i32.shl i32.add - local.tee $5 + local.tee $7 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $11 + local.get $12 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $7 f64.load $0 f64.store $0 local.get $0 @@ -20150,14 +21949,14 @@ i32.const 1 i32.add local.set $1 - br $for-loop|02 + br $for-loop|04 end end - local.get $11 + local.get $12 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $11 + local.get $12 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -20165,17 +21964,17 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $11 + local.get $12 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 call $~lib/map/Map#values - local.tee $5 + local.tee $6 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20184,67 +21983,75 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store $0 - local.get $12 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 local.get $1 if - local.get $12 + local.get $13 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store $0 offset=4 - local.get $12 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $13 + local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $12 + local.get $13 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $12 + local.get $13 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $8 i32.store $0 offset=16 loop $for-loop|2 - local.get $8 - local.get $11 + local.get $9 + local.get $12 i32.load $0 offset=12 i32.lt_s if - local.get $8 - local.get $11 + local.get $9 + local.get $12 i32.load $0 offset=12 i32.ge_u if @@ -20255,36 +22062,193 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 i32.load $0 offset=4 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add f64.load $0 - local.set $13 - local.get $5 - local.get $8 + local.set $3 + local.get $6 + local.get $9 call $~lib/array/Array#__get - local.set $6 - local.get $10 - local.get $13 - call $~lib/map/Map#has + local.set $7 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $3 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find41 + loop $while-continue|045 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find41 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|045 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $7 + i32.const 20 + i32.sub + f64.convert_i32_s + local.tee $14 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find48 + loop $while-continue|052 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $14 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find48 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|052 + end + end + i32.const 0 + local.set $0 end - local.get $10 - local.get $6 - i32.const 20 - i32.sub - f64.convert_i32_s - call $~lib/map/Map#has + local.get $0 i32.eqz if i32.const 0 @@ -20305,9 +22269,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $12 - i32.load $0 local.get $13 + i32.load $0 + local.get $3 i64.reinterpret_f64 local.tee $2 i32.wrap_i64 @@ -20349,8 +22313,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $4 - local.get $12 + local.tee $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 @@ -20359,7 +22323,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 + loop $while-continue|059 local.get $0 if local.get $0 @@ -20370,9 +22334,9 @@ if (result i32) i32.const 0 else + local.get $3 local.get $0 f64.load $0 - local.get $13 f64.eq end br_if $__inlined_func$~lib/map/Map#find @@ -20380,7 +22344,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|0 + br $while-continue|059 end end i32.const 0 @@ -20389,18 +22353,18 @@ local.get $0 if local.get $0 - local.get $13 + local.get $3 f64.store $0 offset=8 else - local.get $12 + local.get $13 i32.load $0 offset=16 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.eq if - local.get $12 + local.get $13 i32.load $0 offset=20 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.const 3 i32.mul @@ -20408,17 +22372,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load $0 offset=4 else - local.get $12 + local.get $13 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $14 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20432,14 +22396,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $14 + local.get $15 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $16 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20447,16 +22411,16 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $4 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $12 + local.get $13 i32.load $0 offset=8 - local.tee $9 - local.get $12 + local.tee $10 + local.get $13 i32.load $0 offset=16 i32.const 24 i32.mul @@ -20465,29 +22429,29 @@ local.get $1 local.set $0 loop $while-continue|00 - local.get $9 + local.get $10 local.get $17 i32.ne if - local.get $9 + local.get $10 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $10 f64.load $0 - local.tee $3 + local.tee $14 f64.store $0 local.get $0 - local.get $9 + local.get $10 f64.load $0 offset=8 f64.store $0 offset=8 local.get $0 + local.get $16 local.get $15 local.get $14 - local.get $3 i64.reinterpret_f64 local.tee $2 i32.wrap_i64 @@ -20544,39 +22508,39 @@ i32.add local.set $0 end - local.get $9 + local.get $10 i32.const 24 i32.add - local.set $9 + local.set $10 br $while-continue|00 end end - local.get $12 - local.get $15 + local.get $13 + local.get $16 i32.store $0 - local.get $15 + local.get $16 if - local.get $12 - local.get $15 + local.get $13 + local.get $16 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $14 + local.get $13 + local.get $15 i32.store $0 offset=4 - local.get $12 + local.get $13 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $12 + local.get $13 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $16 + local.get $13 + local.get $4 i32.store $0 offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -20585,12 +22549,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load $0 offset=8 local.tee $0 i32.store $0 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=16 local.tee $1 i32.const 1 @@ -20602,22 +22566,22 @@ i32.mul i32.add local.tee $0 - local.get $13 + local.get $3 f64.store $0 local.get $0 - local.get $13 + local.get $3 f64.store $0 offset=8 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 local.get $0 - local.get $12 + local.get $13 i32.load $0 - local.get $4 - local.get $12 + local.get $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 @@ -20634,21 +22598,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 local.get $7 - local.get $6 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 + local.set $9 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load $0 offset=20 i32.const 100 i32.ne @@ -20660,7 +22624,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -20679,9 +22643,87 @@ f64.const 50 f64.lt if - local.get $10 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 local.get $3 - call $~lib/map/Map#has + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find80 + loop $while-continue|084 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find80 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|084 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -20691,28 +22733,106 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 i32.trunc_sat_f64_s i32.const 20 i32.add - i32.ne - if + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $11 + local.get $3 + call $~lib/map/Map#delete + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $3 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find87 + loop $while-continue|091 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find87 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|091 + end + end i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $10 - local.get $3 - call $~lib/map/Map#delete - local.get $10 - local.get $3 - call $~lib/map/Map#has + local.get $0 if i32.const 0 i32.const 1568 @@ -20728,7 +22848,7 @@ br $for-loop|3 end end - local.get $10 + local.get $11 i32.load $0 offset=20 i32.const 50 i32.ne @@ -20747,9 +22867,87 @@ f64.const 50 f64.lt if - local.get $10 + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 local.get $3 - call $~lib/map/Map#has + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find96 + loop $while-continue|0100 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find96 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0100 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -20758,31 +22956,187 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 local.get $3 i32.trunc_sat_f64_s i32.const 10 i32.add - call $~lib/map/Map#set - local.get $10 - local.get $3 - call $~lib/map/Map#has - i32.eqz - if + call $~lib/map/Map#set + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $3 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find103 + loop $while-continue|0107 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find103 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0107 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $11 + local.get $3 + call $~lib/map/Map#delete + local.get $11 + i32.load $0 + local.get $11 + i32.load $0 offset=4 + local.get $3 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/map/Map#find110 + loop $while-continue|0114 + local.get $0 + if + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/map/Map#find110 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0114 + end + end i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $10 - local.get $3 - call $~lib/map/Map#delete - local.get $10 - local.get $3 - call $~lib/map/Map#has + local.get $0 if i32.const 0 i32.const 1568 @@ -20798,7 +23152,7 @@ br $for-loop|4 end end - local.get $10 + local.get $11 i32.load $0 offset=20 i32.const 50 i32.ne @@ -20810,9 +23164,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 call $~lib/map/Map#clear - local.get $10 + local.get $11 i32.load $0 offset=20 if i32.const 0 @@ -20872,98 +23226,308 @@ call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $0 - i32.load $0 offset=8 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return + i32.load $0 offset=8 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start (type $none_=>_none) + memory.size $0 + i32.const 16 + i32.shl + i32.const 34788 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + call $std/map/testNumeric + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + 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 + 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 + ) + (func $~lib/map/Map#constructor (type $none_=>_i32) (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 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + if + i32.const 34816 + i32.const 34864 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/map/Map#clear (type $i32_=>_none) (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 2020 + i32.lt_s + if + i32.const 34816 + i32.const 34864 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - i32.load $0 - local.tee $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 if local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~start (type $none_=>_none) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34788 + (func $~lib/map/Map#clear (type $i32_=>_none) (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + if + i32.const 34816 + i32.const 34864 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store $0 - i32.const 1352 - i32.const 1344 + local.get $0 + local.get $1 i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - call $std/map/testNumeric - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s + local.get $1 if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link 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 - end + local.get $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link end - 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 + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - global.set $~lib/rt/itcms/threshold + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_=>_i32) (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -21362,74 +23926,6 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/map/Map#constructor (type $none_=>_i32) (result i32) - (local $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 2020 - i32.lt_s - if - i32.const 34816 - i32.const 34864 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -21503,9 +23999,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 i32.load $0 - local.get $1 i32.eq end br_if $__inlined_func$~lib/map/Map#find @@ -22214,9 +24710,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 i32.load $0 - local.get $1 i32.eq end br_if $__inlined_func$~lib/map/Map#find @@ -22401,9 +24897,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 i64.load $0 - local.get $1 i64.eq end br_if $__inlined_func$~lib/map/Map#find @@ -22675,9 +25171,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 i64.load $0 - local.get $1 i64.eq end br_if $__inlined_func$~lib/map/Map#find @@ -22851,9 +25347,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 f32.load $0 - local.get $1 f32.eq end br_if $__inlined_func$~lib/map/Map#find @@ -23041,9 +25537,9 @@ if (result i32) i32.const 0 else + local.get $1 local.get $3 f64.load $0 - local.get $1 f64.eq end br_if $__inlined_func$~lib/map/Map#find diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index e2b94e39f0..91b7dc10be 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -45,24 +45,28 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $std/new/AClass#set:aField (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/new/AClass#get:aField (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/new/AClass#set:aField (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/new/AClass#set:anotherField (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $std/new/AClass#set:anotherField (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -74,9 +78,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -84,7 +92,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -136,7 +144,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -145,11 +153,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -168,7 +180,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -190,7 +202,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -211,6 +223,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -234,12 +254,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -258,7 +278,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -282,7 +302,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -361,36 +381,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -415,7 +451,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -515,10 +551,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -609,7 +645,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -662,7 +698,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -684,7 +720,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -692,7 +728,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -719,7 +755,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -727,7 +763,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -742,7 +778,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -937,7 +973,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1047,7 +1083,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1301,7 +1337,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1324,7 +1360,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1764,7 +1800,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1941,7 +1977,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2011,7 +2047,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2023,13 +2059,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2073,7 +2109,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2112,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2293,7 +2329,7 @@ call $std/new/AClass#set:anotherField local.get $this local.get $this - i32.load $0 + call $std/new/AClass#get:aField i32.const 1 i32.add call $std/new/AClass#set:aField diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index ab69299fdb..8837c8a492 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1,10 +1,10 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -999,63 +999,11 @@ end end ) - (func $start:std/new (type $none_=>_none) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34244 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1476 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u @@ -1090,13 +1038,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1107,7 +1055,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1115,7 +1063,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1147,7 +1095,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1155,7 +1103,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1182,12 +1130,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1197,7 +1145,7 @@ i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1206,19 +1154,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 + local.tee $3 local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1246,18 +1194,18 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load $0 offset=8 - local.set $3 + local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 local.get $0 - local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 local.get $0 - local.get $3 + local.get $2 i32.load $0 offset=4 i32.const 3 i32.and @@ -1281,30 +1229,7 @@ local.tee $0 i64.const 0 i64.store $0 align=1 - local.get $2 - local.get $0 - i32.store $0 - local.get $0 - i32.const 1 - i32.store $0 - local.get $0 - f32.const 2 - f32.store $0 offset=4 - local.get $0 - local.get $0 - i32.load $0 - i32.const 1 - i32.add - i32.store $0 local.get $0 - f32.const 3 - f32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std/new/aClass ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid @@ -1336,7 +1261,83 @@ unreachable ) (func $~start (type $none_=>_none) - call $start:std/new + (local $0 i32) + memory.size $0 + i32.const 16 + i32.shl + i32.const 34244 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + local.get $0 + i32.const 1 + i32.store $0 + local.get $0 + f32.const 2 + f32.store $0 offset=4 + local.get $0 + local.get $0 + i32.load $0 + i32.const 1 + i32.add + i32.store $0 + local.get $0 + f32.const 3 + f32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std/new/aClass ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index dc7db1191d..192963c37a 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -1,10 +1,10 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $f64_f64_=>_i32 (func_subtype (param f64 f64) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $f32_f32_=>_i32 (func_subtype (param f32 f32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32 i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) @@ -86,11 +86,15 @@ i32.ne i32.eq ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 9fab782065..7f0d8be5c3 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) @@ -114,14 +114,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -133,9 +133,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -143,7 +147,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -195,7 +199,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -204,11 +208,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -227,7 +235,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -249,7 +257,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -270,6 +278,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -293,12 +309,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -317,7 +333,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -341,7 +357,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -420,36 +436,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -474,7 +506,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -574,10 +606,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -668,7 +700,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -721,7 +753,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -743,7 +775,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -751,7 +783,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -778,7 +810,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -786,7 +818,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -801,7 +833,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -996,7 +1028,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1106,7 +1138,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1360,7 +1392,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1383,7 +1415,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1823,7 +1855,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2000,7 +2032,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2070,7 +2102,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2082,13 +2114,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2132,7 +2164,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2171,14 +2203,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2233,83 +2265,91 @@ memory.fill $0 local.get $ptr ) - (func $std/operator-overloading/Tester#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/Tester#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/operator-overloading/Tester#set:y (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/Tester#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $std/operator-overloading/Tester#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/operator-overloading/Tester#get:y (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $std/operator-overloading/Tester.add (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.add local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.add call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.sub local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.sub call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.mul local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.mul call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.div (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.div_s local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.div_s call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.mod (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.rem_s local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.rem_s call $std/operator-overloading/Tester#constructor ) @@ -2536,70 +2576,70 @@ (func $std/operator-overloading/Tester.pow (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x call $~lib/math/ipow32 local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.and (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.and local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.and call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.or (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.or local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.or call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.xor (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.xor local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.xor call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.equals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.eq if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.eq else i32.const 0 @@ -2607,15 +2647,15 @@ ) (func $std/operator-overloading/Tester.notEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.ne if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.ne else i32.const 0 @@ -2623,15 +2663,15 @@ ) (func $std/operator-overloading/Tester.greater (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.gt_s if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.gt_s else i32.const 0 @@ -2639,15 +2679,15 @@ ) (func $std/operator-overloading/Tester.greaterEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.ge_s if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.ge_s else i32.const 0 @@ -2655,15 +2695,15 @@ ) (func $std/operator-overloading/Tester.less (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.lt_s if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.lt_s else i32.const 0 @@ -2671,15 +2711,15 @@ ) (func $std/operator-overloading/Tester.lessEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $b - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.le_s if (result i32) local.get $a - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $b - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.le_s else i32.const 0 @@ -2688,11 +2728,11 @@ (func $std/operator-overloading/Tester.shr (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $shift i32.shr_s local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $shift i32.shr_s call $std/operator-overloading/Tester#constructor @@ -2700,11 +2740,11 @@ (func $std/operator-overloading/Tester.shu (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $shift i32.shr_u local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $shift i32.shr_u call $std/operator-overloading/Tester#constructor @@ -2712,11 +2752,11 @@ (func $std/operator-overloading/Tester.shl (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $shift i32.shl local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y local.get $shift i32.shl call $std/operator-overloading/Tester#constructor @@ -2724,42 +2764,42 @@ (func $std/operator-overloading/Tester.pos (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.neg (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.sub i32.const 0 local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.sub call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.not (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.const -1 i32.xor local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.excl (type $i32_=>_i32) (param $value i32) (result i32) local.get $value - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.eqz if (result i32) local.get $value - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.eqz else i32.const 0 @@ -2768,13 +2808,13 @@ (func $std/operator-overloading/Tester#inc (type $i32_=>_i32) (param $this i32) (result i32) local.get $this local.get $this - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.add call $std/operator-overloading/Tester#set:x local.get $this local.get $this - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.add call $std/operator-overloading/Tester#set:y @@ -2783,13 +2823,13 @@ (func $std/operator-overloading/Tester#dec (type $i32_=>_i32) (param $this i32) (result i32) local.get $this local.get $this - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.sub call $std/operator-overloading/Tester#set:x local.get $this local.get $this - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.sub call $std/operator-overloading/Tester#set:y @@ -2798,11 +2838,11 @@ (func $std/operator-overloading/Tester#postInc (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 local.get $this - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.add local.get $this - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.add call $std/operator-overloading/Tester#constructor @@ -2810,50 +2850,70 @@ (func $std/operator-overloading/Tester#postDec (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 local.get $this - i32.load $0 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.sub local.get $this - i32.load $0 offset=4 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/TesterInlineStatic#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterInlineStatic#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/operator-overloading/TesterInlineStatic#set:y (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterInlineStatic#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $std/operator-overloading/TesterInlineInstance#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterInlineStatic#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/operator-overloading/TesterInlineStatic#get:y (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $std/operator-overloading/TesterInlineInstance#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/operator-overloading/TesterInlineInstance#set:y (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterInlineInstance#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $std/operator-overloading/TesterElementAccess#set:x (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterInlineInstance#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/operator-overloading/TesterInlineInstance#get:y (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $std/operator-overloading/TesterElementAccess#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/operator-overloading/TesterElementAccess#set:y (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/operator-overloading/TesterElementAccess#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -3005,6 +3065,14 @@ call $~lib/util/string/compareImpl i32.eqz ) + (func $std/operator-overloading/TesterElementAccess#get:x (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/operator-overloading/TesterElementAccess#get:y (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $std/operator-overloading/a1 @@ -3547,10 +3615,10 @@ call $~lib/string/String.__eq if (result i32) local.get $this - i32.load $0 + call $std/operator-overloading/TesterElementAccess#get:x else local.get $this - i32.load $0 offset=4 + call $std/operator-overloading/TesterElementAccess#get:y end local.set $2 global.get $~lib/memory/__stack_pointer @@ -3621,12 +3689,22 @@ call $std/operator-overloading/Tester.add global.set $std/operator-overloading/a global.get $std/operator-overloading/a - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 3 i32.eq if (result i32) global.get $std/operator-overloading/a - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 5 i32.eq else @@ -3666,12 +3744,22 @@ call $std/operator-overloading/Tester.sub global.set $std/operator-overloading/s global.get $std/operator-overloading/s - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 0 i32.eq if (result i32) global.get $std/operator-overloading/s - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 6 i32.eq else @@ -3711,12 +3799,22 @@ call $std/operator-overloading/Tester.mul global.set $std/operator-overloading/m global.get $std/operator-overloading/m - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 6 i32.eq if (result i32) global.get $std/operator-overloading/m - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 10 i32.eq else @@ -3756,12 +3854,22 @@ call $std/operator-overloading/Tester.div global.set $std/operator-overloading/d global.get $std/operator-overloading/d - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 2 i32.eq if (result i32) global.get $std/operator-overloading/d - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 5 i32.eq else @@ -3801,12 +3909,22 @@ call $std/operator-overloading/Tester.mod global.set $std/operator-overloading/f global.get $std/operator-overloading/f - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 4 i32.eq if (result i32) global.get $std/operator-overloading/f - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 0 i32.eq else @@ -3846,12 +3964,22 @@ call $std/operator-overloading/Tester.pow global.set $std/operator-overloading/p global.get $std/operator-overloading/p - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 16 i32.eq if (result i32) global.get $std/operator-overloading/p - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 243 i32.eq else @@ -3891,12 +4019,22 @@ call $std/operator-overloading/Tester.and global.set $std/operator-overloading/n global.get $std/operator-overloading/n - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 15 i32.eq if (result i32) global.get $std/operator-overloading/n - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 15 i32.eq else @@ -3936,12 +4074,22 @@ call $std/operator-overloading/Tester.or global.set $std/operator-overloading/o global.get $std/operator-overloading/o - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 65535 i32.eq if (result i32) global.get $std/operator-overloading/o - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 255 i32.eq else @@ -3981,12 +4129,22 @@ call $std/operator-overloading/Tester.xor global.set $std/operator-overloading/x global.get $std/operator-overloading/x - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 65535 i32.eq if (result i32) global.get $std/operator-overloading/x - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 255 i32.eq else @@ -4284,12 +4442,22 @@ call $std/operator-overloading/Tester.shr global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.eq if (result i32) global.get $std/operator-overloading/sres - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 2 i32.eq else @@ -4319,12 +4487,22 @@ call $std/operator-overloading/Tester.shu global.set $std/operator-overloading/ures global.get $std/operator-overloading/ures - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 536870911 i32.eq if (result i32) global.get $std/operator-overloading/ures - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 536870910 i32.eq else @@ -4354,12 +4532,22 @@ call $std/operator-overloading/Tester.shl global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 8 i32.eq if (result i32) global.get $std/operator-overloading/sres - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 16 i32.eq else @@ -4388,15 +4576,35 @@ call $std/operator-overloading/Tester.pos global.set $std/operator-overloading/pres global.get $std/operator-overloading/pres - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x global.get $std/operator-overloading/pos - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.eq if (result i32) global.get $std/operator-overloading/pres - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y global.get $std/operator-overloading/pos - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.eq else i32.const 0 @@ -4424,18 +4632,38 @@ call $std/operator-overloading/Tester.neg global.set $std/operator-overloading/nres global.get $std/operator-overloading/nres - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 0 global.get $std/operator-overloading/neg - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.sub i32.eq if (result i32) global.get $std/operator-overloading/nres - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 0 global.get $std/operator-overloading/neg - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.sub i32.eq else @@ -4464,17 +4692,37 @@ call $std/operator-overloading/Tester.not global.set $std/operator-overloading/res global.get $std/operator-overloading/res - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x global.get $std/operator-overloading/not - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const -1 i32.xor i32.eq if (result i32) global.get $std/operator-overloading/res - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y global.get $std/operator-overloading/not - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const -1 i32.xor i32.eq @@ -4505,11 +4753,21 @@ global.set $std/operator-overloading/bres global.get $std/operator-overloading/bres global.get $std/operator-overloading/excl - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.eqz if (result i32) global.get $std/operator-overloading/excl - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.eqz else i32.const 0 @@ -4550,12 +4808,22 @@ call $std/operator-overloading/Tester#inc global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.eq if (result i32) global.get $std/operator-overloading/incdec - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 2 i32.eq else @@ -4579,12 +4847,22 @@ call $std/operator-overloading/Tester#dec global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 0 i32.eq if (result i32) global.get $std/operator-overloading/incdec - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.eq else @@ -4614,12 +4892,22 @@ local.get $0 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 0 i32.eq if (result i32) global.get $std/operator-overloading/tmp - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.eq else @@ -4635,12 +4923,22 @@ unreachable end global.get $std/operator-overloading/incdec - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.eq if (result i32) global.get $std/operator-overloading/incdec - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 2 i32.eq else @@ -4665,12 +4963,22 @@ local.get $1 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 1 i32.eq if (result i32) global.get $std/operator-overloading/tmp - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 2 i32.eq else @@ -4686,12 +4994,22 @@ unreachable end global.get $std/operator-overloading/incdec - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:x i32.const 0 i32.eq if (result i32) global.get $std/operator-overloading/incdec - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/Tester#get:y i32.const 1 i32.eq else @@ -4722,11 +5040,11 @@ i32.store $0 offset=16 i32.const 0 local.get $3 - i32.load $0 + call $std/operator-overloading/TesterInlineStatic#get:x i32.const 1 i32.add local.get $3 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineStatic#get:y i32.const 1 i32.add call $std/operator-overloading/TesterInlineStatic#constructor @@ -4746,24 +5064,34 @@ i32.store $0 offset=24 i32.const 0 local.get $4 - i32.load $0 + call $std/operator-overloading/TesterInlineStatic#get:x local.get $5 - i32.load $0 + call $std/operator-overloading/TesterInlineStatic#get:x i32.add local.get $4 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineStatic#get:y local.get $5 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineStatic#get:y i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais global.get $std/operator-overloading/ais - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterInlineStatic#get:x i32.const 4 i32.eq if (result i32) global.get $std/operator-overloading/ais - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterInlineStatic#get:y i32.const 6 i32.eq else @@ -4789,11 +5117,11 @@ i32.store $0 offset=28 i32.const 0 local.get $6 - i32.load $0 + call $std/operator-overloading/TesterInlineInstance#get:x i32.const 1 i32.add local.get $6 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineInstance#get:y i32.const 1 i32.add call $std/operator-overloading/TesterInlineInstance#constructor @@ -4813,24 +5141,34 @@ i32.store $0 offset=36 i32.const 0 local.get $7 - i32.load $0 + call $std/operator-overloading/TesterInlineInstance#get:x local.get $8 - i32.load $0 + call $std/operator-overloading/TesterInlineInstance#get:x i32.add local.get $7 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineInstance#get:y local.get $8 - i32.load $0 offset=4 + call $std/operator-overloading/TesterInlineInstance#get:y i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii global.get $std/operator-overloading/aii - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterInlineInstance#get:x i32.const 4 i32.eq if (result i32) global.get $std/operator-overloading/aii - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterInlineInstance#get:y i32.const 6 i32.eq else @@ -4879,7 +5217,12 @@ i32.const -2 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea - i32.load $0 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterElementAccess#get:x i32.const -1 i32.eq i32.eqz @@ -4916,7 +5259,12 @@ unreachable end global.get $std/operator-overloading/tea - i32.load $0 offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + call $std/operator-overloading/TesterElementAccess#get:y i32.const -2 i32.eq i32.eqz diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 02bfce9f73..29889b2ffb 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -2155,12 +2155,20 @@ i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 3 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 5 i32.eq @@ -2205,12 +2213,20 @@ i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 if (result i32) i32.const 0 else + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 6 i32.eq @@ -2253,12 +2269,20 @@ i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 6 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 10 i32.eq @@ -2303,12 +2327,20 @@ i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 2 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 5 i32.eq @@ -2353,12 +2385,20 @@ i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 4 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 else i32.const 1 @@ -2400,12 +2440,20 @@ call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 16 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 243 i32.eq @@ -2450,12 +2498,20 @@ i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 15 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 15 i32.eq @@ -2500,12 +2556,20 @@ i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 65535 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 255 i32.eq @@ -2550,12 +2614,20 @@ i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 65535 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 255 i32.eq @@ -2913,12 +2985,20 @@ i32.shr_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/sres + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 2 i32.eq @@ -2952,12 +3032,20 @@ i32.shr_u call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/ures + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ures + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 536870911 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ures + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 536870910 i32.eq @@ -2991,12 +3079,20 @@ i32.shl call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/sres + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 8 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 16 i32.eq @@ -3026,15 +3122,36 @@ i32.load $0 offset=4 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/pres + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 + local.set $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos + local.tee $1 + i32.store $0 + local.get $0 + local.get $1 i32.load $0 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $std/operator-overloading/pres + local.tee $1 + i32.store $0 + local.get $1 i32.load $0 offset=4 + local.set $1 + local.get $0 global.get $std/operator-overloading/pos + local.tee $0 + i32.store $0 + local.get $1 + local.get $0 i32.load $0 offset=4 i32.eq else @@ -3067,18 +3184,39 @@ i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/nres + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/nres + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 - i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg + local.tee $1 + i32.store $0 + local.get $0 + i32.const 0 + local.get $1 i32.load $0 i32.sub i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $std/operator-overloading/nres + local.tee $1 + i32.store $0 + local.get $1 i32.load $0 offset=4 - i32.const 0 + local.set $1 + local.get $0 global.get $std/operator-overloading/neg + local.tee $0 + i32.store $0 + local.get $1 + i32.const 0 + local.get $0 i32.load $0 offset=4 i32.sub i32.eq @@ -3112,17 +3250,38 @@ i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/res + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/res + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 + local.set $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not + local.tee $1 + i32.store $0 + local.get $0 + local.get $1 i32.load $0 i32.const -1 i32.xor i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $std/operator-overloading/res + local.tee $1 + i32.store $0 + local.get $1 i32.load $0 offset=4 + local.set $1 + local.get $0 global.get $std/operator-overloading/not + local.tee $0 + i32.store $0 + local.get $1 + local.get $0 i32.load $0 offset=4 i32.const -1 i32.xor @@ -3157,13 +3316,21 @@ end i32.eqz global.set $std/operator-overloading/bres - global.get $std/operator-overloading/bres + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/excl + local.tee $0 + i32.store $0 + global.get $std/operator-overloading/bres + local.get $0 i32.load $0 if (result i32) i32.const 1 else + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/excl + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 end i32.eqz @@ -3192,29 +3359,38 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/incdec local.tee $0 + global.get $std/operator-overloading/incdec + local.tee $1 i32.store $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load $0 i32.const 1 i32.add i32.store $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load $0 offset=4 i32.const 1 i32.add i32.store $0 offset=4 - local.get $0 + local.get $1 global.set $std/operator-overloading/incdec + local.get $0 global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 2 i32.eq @@ -3231,29 +3407,38 @@ unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/incdec local.tee $0 + global.get $std/operator-overloading/incdec + local.tee $1 i32.store $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load $0 i32.const 1 i32.sub i32.store $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load $0 offset=4 i32.const 1 i32.sub i32.store $0 offset=4 - local.get $0 + local.get $1 global.set $std/operator-overloading/incdec + local.get $0 global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 if (result i32) i32.const 0 else + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 1 i32.eq @@ -3287,12 +3472,20 @@ global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 if (result i32) i32.const 0 else + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 1 i32.eq @@ -3306,12 +3499,20 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 2 i32.eq @@ -3343,12 +3544,20 @@ global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 1 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tmp + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 2 i32.eq @@ -3364,12 +3573,20 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 if (result i32) i32.const 0 else + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 1 i32.eq @@ -3429,12 +3646,20 @@ i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 4 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 6 i32.eq @@ -3492,12 +3717,20 @@ i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const 4 i32.eq if (result i32) + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const 6 i32.eq @@ -3564,7 +3797,11 @@ i32.const 1568 i32.const -2 call $std/operator-overloading/TesterElementAccess#__set + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 i32.const -1 i32.ne @@ -3597,7 +3834,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea + local.tee $0 + i32.store $0 + local.get $0 i32.load $0 offset=4 i32.const -2 i32.ne diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 6ac23a1ba1..813f1bd63a 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -1,5 +1,6 @@ (module (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -18,16 +19,24 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $std/pointer/Entry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/pointer/Entry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $std/pointer/Entry#set:val (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $std/pointer/Entry#set:val (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) + (func $std/pointer/Entry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $std/pointer/Entry#get:val (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $start:std/pointer (type $none_=>_none) (local $this i32) (local $offset i32) @@ -155,7 +164,7 @@ local.get $this|8 br $std/pointer/Pointer#get:value|inlined.2 end - i32.load $0 + call $std/pointer/Entry#get:key i32.const 1 i32.eq i32.eqz @@ -175,7 +184,7 @@ local.get $this|9 br $std/pointer/Pointer#get:value|inlined.3 end - i32.load $0 offset=4 + call $std/pointer/Entry#get:val i32.const 2 i32.eq i32.eqz @@ -327,7 +336,7 @@ local.get $this|23 br $std/pointer/Pointer#get:value|inlined.4 end - i32.load $0 + call $std/pointer/Entry#get:key i32.const 1 i32.eq i32.eqz @@ -347,7 +356,7 @@ local.get $this|24 br $std/pointer/Pointer#get:value|inlined.5 end - i32.load $0 offset=4 + call $std/pointer/Entry#get:val i32.const 2 i32.eq i32.eqz @@ -412,7 +421,7 @@ local.get $this|30 br $std/pointer/Pointer#get:value|inlined.7 end - i32.load $0 + call $std/pointer/Entry#get:key i32.const 1 i32.eq i32.eqz @@ -432,7 +441,7 @@ local.get $this|31 br $std/pointer/Pointer#get:value|inlined.8 end - i32.load $0 offset=4 + call $std/pointer/Entry#get:val i32.const 2 i32.eq i32.eqz diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index b7f9d24e31..9d517fa8f7 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -11,17 +11,20 @@ (type $i32_f64_=>_i32 (func_subtype (param i32 f64) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i64_=>_i32 (func_subtype (param i64) (result i32) func)) + (type $i32_=>_i64 (func_subtype (param i32) (result i64) func)) (type $i32_i64_i32_=>_i32 (func_subtype (param i32 i64 i32) (result i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) (type $i32_i32_i64_=>_none (func_subtype (param i32 i32 i64) func)) (type $i32_i32_=>_i64 (func_subtype (param i32 i32) (result i64) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $f32_=>_i32 (func_subtype (param f32) (result i32) func)) + (type $i32_=>_f32 (func_subtype (param i32) (result f32) func)) (type $i32_f32_i32_=>_i32 (func_subtype (param i32 f32 i32) (result i32) func)) (type $i32_f32_=>_none (func_subtype (param i32 f32) func)) (type $i32_i32_f32_=>_none (func_subtype (param i32 i32 f32) func)) (type $i32_i32_=>_f32 (func_subtype (param i32 i32) (result f32) func)) (type $f64_=>_i32 (func_subtype (param f64) (result i32) func)) + (type $i32_=>_f64 (func_subtype (param i32) (result f64) func)) (type $i32_f64_i32_=>_i32 (func_subtype (param i32 f64 i32) (result i32) func)) (type $i32_f64_=>_none (func_subtype (param i32 f64) func)) (type $i32_i32_f64_=>_none (func_subtype (param i32 i32 f64) func)) @@ -64,14 +67,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -83,9 +86,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -93,7 +100,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -145,7 +152,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -154,11 +161,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -177,7 +188,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -199,7 +210,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -220,6 +231,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -243,12 +262,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -267,7 +286,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -291,7 +310,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -370,36 +389,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -424,7 +459,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -524,10 +559,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -618,7 +653,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -671,7 +706,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -693,7 +728,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -701,7 +736,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -728,7 +763,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -736,7 +771,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -751,7 +786,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -946,7 +981,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1056,7 +1091,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1310,7 +1345,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1333,7 +1368,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1773,7 +1808,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1950,7 +1985,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2020,7 +2055,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2032,13 +2067,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2082,7 +2117,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2121,14 +2156,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2251,42 +2286,42 @@ end end ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -2355,15 +2390,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_s $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -2376,7 +2427,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -2384,7 +2435,8 @@ i32.eqz if (result i32) local.get $entry - i32.load8_s $0 + call $~lib/set/SetEntry#get:key + i32.extend8_s local.get $key i32.extend8_s i32.eq @@ -2415,14 +2467,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -2474,11 +2542,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -2495,7 +2563,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -2503,7 +2571,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_s $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -2552,7 +2620,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2576,16 +2644,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -2593,10 +2661,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -2605,10 +2673,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -2625,15 +2693,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -2651,35 +2719,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2689,6 +2761,18 @@ i32.const 0 drop ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2700,7 +2784,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2717,7 +2801,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2725,7 +2809,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2746,7 +2830,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2768,7 +2852,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2840,15 +2924,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -2859,7 +2947,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -2889,18 +2977,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -2910,7 +2998,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -2919,9 +3007,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -2937,36 +3025,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) @@ -3326,42 +3384,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 - i32.const 0 + local.get $this + local.get $value + i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -3431,15 +3489,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load8_u $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -3452,7 +3526,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3460,7 +3534,9 @@ i32.eqz if (result i32) local.get $entry - i32.load8_u $0 + call $~lib/set/SetEntry#get:key + i32.const 255 + i32.and local.get $key i32.const 255 i32.and @@ -3492,14 +3568,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store8 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3551,11 +3643,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -3572,7 +3664,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -3580,7 +3672,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load8_u $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -3629,7 +3721,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3653,16 +3745,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -3670,10 +3762,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -3682,10 +3774,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -3702,15 +3794,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -3728,35 +3820,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -3776,15 +3872,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -3795,7 +3895,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -3825,18 +3925,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -3846,7 +3946,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -3855,9 +3955,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -3873,36 +3973,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) @@ -4262,42 +4332,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -4366,15 +4436,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_s $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -4387,7 +4473,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -4395,7 +4481,8 @@ i32.eqz if (result i32) local.get $entry - i32.load16_s $0 + call $~lib/set/SetEntry#get:key + i32.extend16_s local.get $key i32.extend16_s i32.eq @@ -4426,14 +4513,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4485,11 +4588,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -4506,7 +4609,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -4514,7 +4617,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_s $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -4563,7 +4666,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4587,16 +4690,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -4604,10 +4707,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -4616,10 +4719,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -4636,15 +4739,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -4662,35 +4765,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -4710,15 +4817,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -4729,7 +4840,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -4759,18 +4870,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -4780,7 +4891,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -4789,9 +4900,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -4807,59 +4918,29 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) - (func $std/set/testNumeric (type $none_=>_none) - (local $set i32) - (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) - (local $vals i32) - (local $valSet i32) - (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) - 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 $0 - global.get $~lib/memory/__stack_pointer + (func $std/set/testNumeric (type $none_=>_none) + (local $set i32) + (local $k i32) + (local $2 i32) + (local $k|3 i32) + (local $4 i32) + (local $vals i32) + (local $valSet i32) + (local $index i32) + (local $8 i32) + (local $k|9 i32) + (local $10 i32) + (local $k|11 i32) + (local $12 i32) + 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 $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -5196,42 +5277,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -5301,15 +5382,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load16_u $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -5322,7 +5419,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -5330,7 +5427,9 @@ i32.eqz if (result i32) local.get $entry - i32.load16_u $0 + call $~lib/set/SetEntry#get:key + i32.const 65535 + i32.and local.get $key i32.const 65535 i32.and @@ -5362,14 +5461,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store16 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5421,11 +5536,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -5442,7 +5557,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -5450,7 +5565,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load16_u $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -5499,7 +5614,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5523,16 +5638,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -5540,10 +5655,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -5552,10 +5667,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -5572,15 +5687,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -5598,35 +5713,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -5646,15 +5765,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -5665,7 +5788,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -5695,18 +5818,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -5716,7 +5839,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -5725,9 +5848,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -5743,36 +5866,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) @@ -6132,42 +6225,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -6235,15 +6328,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -6256,7 +6365,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -6264,7 +6373,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/set/SetEntry#get:key local.get $key i32.eq else @@ -6294,25 +6403,41 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=4 + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 ) - (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $9 i32) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 + ) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=4 + ) + (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -6353,11 +6478,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -6374,7 +6499,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -6382,7 +6507,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -6431,7 +6556,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6455,16 +6580,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -6472,10 +6597,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -6484,10 +6609,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -6504,15 +6629,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -6530,35 +6655,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -6578,15 +6707,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -6597,7 +6730,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -6627,18 +6760,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -6648,7 +6781,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -6657,9 +6790,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -6675,36 +6808,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) @@ -7064,42 +7167,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -7167,15 +7270,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -7188,7 +7307,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -7196,7 +7315,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/set/SetEntry#get:key local.get $key i32.eq else @@ -7226,14 +7345,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -7285,11 +7420,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -7306,7 +7441,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -7314,7 +7449,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i32.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -7363,7 +7498,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7387,16 +7522,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -7404,10 +7539,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -7416,10 +7551,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -7436,15 +7571,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -7462,35 +7597,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -7510,15 +7649,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -7529,7 +7672,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -7559,18 +7702,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -7580,7 +7723,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -7589,9 +7732,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -7607,36 +7750,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) @@ -7996,42 +8109,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=12 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -8116,15 +8229,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/set/Set#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -8137,7 +8266,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -8145,7 +8274,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/set/SetEntry#get:key local.get $key i64.eq else @@ -8175,14 +8304,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -8234,11 +8379,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 16 i32.mul i32.add @@ -8255,7 +8400,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -8263,7 +8408,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -8312,7 +8457,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8336,16 +8481,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -8353,10 +8498,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -8365,10 +8510,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -8385,15 +8530,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -8411,35 +8556,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -8459,15 +8608,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -8478,7 +8631,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -8508,18 +8661,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -8529,7 +8682,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -8538,9 +8691,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -8556,36 +8709,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i64) @@ -8945,42 +9068,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -9065,15 +9188,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_i64) (param $this i32) (result i64) + local.get $this + i64.load $0 + ) (func $~lib/set/Set#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -9086,7 +9225,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -9094,7 +9233,7 @@ i32.eqz if (result i32) local.get $entry - i64.load $0 + call $~lib/set/SetEntry#get:key local.get $key i64.eq else @@ -9124,14 +9263,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + local.get $this + local.get $value i64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -9183,11 +9338,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 16 i32.mul i32.add @@ -9204,7 +9359,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -9212,7 +9367,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - i64.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -9261,7 +9416,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9285,16 +9440,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -9302,10 +9457,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -9314,10 +9469,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -9334,15 +9489,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -9360,35 +9515,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -9408,15 +9567,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -9427,7 +9590,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -9457,18 +9620,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -9478,7 +9641,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -9487,9 +9650,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -9505,36 +9668,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i64) @@ -9894,42 +10027,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 - i32.const 0 + local.get $this + local.get $value + i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f32_=>_i32) (param $key f32) (result i32) @@ -9998,15 +10131,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_f32) (param $this i32) (result f32) + local.get $this + f32.load $0 + ) (func $~lib/set/Set#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -10019,7 +10168,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -10027,7 +10176,7 @@ i32.eqz if (result i32) local.get $entry - f32.load $0 + call $~lib/set/SetEntry#get:key local.get $key f32.eq else @@ -10057,14 +10206,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_f32_=>_none) (param $0 i32) (param $1 f32) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + local.get $this + local.get $value f32.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -10116,11 +10281,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 8 i32.mul i32.add @@ -10137,7 +10302,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -10145,7 +10310,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f32.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -10194,7 +10359,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10218,16 +10383,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -10235,10 +10400,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -10247,10 +10412,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -10267,15 +10432,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -10293,35 +10458,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -10341,15 +10510,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -10360,7 +10533,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -10390,18 +10563,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -10411,7 +10584,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -10420,9 +10593,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -10438,36 +10611,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k f32) @@ -10827,42 +10970,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f64_=>_i32) (param $key f64) (result i32) @@ -10948,15 +11091,31 @@ local.get $h return ) + (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/set/Set#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/set/SetEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#get:key (type $i32_=>_f64) (param $this i32) (result f64) + local.get $this + f64.load $0 + ) (func $~lib/set/Set#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -10969,7 +11128,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -10977,7 +11136,7 @@ i32.eqz if (result i32) local.get $entry - f64.load $0 + call $~lib/set/SetEntry#get:key local.get $key f64.eq else @@ -11007,14 +11166,30 @@ i32.const 0 i32.ne ) - (func $~lib/set/SetEntry#set:key (type $i32_f64_=>_none) (param $0 i32) (param $1 f64) - local.get $0 - local.get $1 + (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/set/Set#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/set/Set#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/set/Set#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/set/SetEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + local.get $this + local.get $value f64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11066,11 +11241,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset i32.const 16 i32.mul i32.add @@ -11087,7 +11262,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -11095,7 +11270,7 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - f64.load $0 + call $~lib/set/SetEntry#get:key local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey @@ -11144,7 +11319,7 @@ call $~lib/set/Set#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount call $~lib/set/Set#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11168,16 +11343,16 @@ i32.eqz if local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -11185,10 +11360,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -11197,10 +11372,10 @@ call $~lib/set/Set#rehash end local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.tee $4 i32.const 1 i32.add @@ -11217,15 +11392,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.add call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.and i32.const 4 i32.mul @@ -11243,35 +11418,39 @@ ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -11291,15 +11470,19 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 224 @@ -11310,7 +11493,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -11340,18 +11523,18 @@ end local.get $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.or call $~lib/set/SetEntry#set:taggedNext local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount i32.const 1 i32.sub call $~lib/set/Set#set:entriesCount local.get $this - i32.load $0 offset=4 + call $~lib/set/Set#get:bucketsMask i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -11361,7 +11544,7 @@ i32.const 4 local.tee $4 local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.tee $5 local.get $4 local.get $5 @@ -11370,9 +11553,9 @@ i32.ge_u if (result i32) local.get $this - i32.load $0 offset=20 + call $~lib/set/Set#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/set/Set#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -11388,36 +11571,6 @@ end i32.const 1 ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k f64) @@ -11885,11 +12038,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -11902,11 +12055,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -11918,11 +12075,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -11935,11 +12092,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -11951,11 +12112,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -11968,11 +12129,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -11984,11 +12149,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12001,11 +12166,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12017,11 +12186,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12034,11 +12203,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12050,11 +12223,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12067,11 +12240,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12083,11 +12260,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12100,11 +12277,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12116,11 +12297,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12133,11 +12314,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12149,11 +12334,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12166,11 +12351,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12182,11 +12371,11 @@ (func $~lib/set/Set#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $entries i32) local.get $this - i32.load $0 + call $~lib/set/Set#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $entries i32.const 0 drop @@ -12199,11 +12388,15 @@ local.get $1 call $~lib/set/Set#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -12370,47 +12563,73 @@ unreachable end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) - (local $buffer i32) - (local $3 i32) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (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 $0 - local.get $length - i32.const 1073741820 - i32.gt_u + i64.const 0 + i64.store $0 + local.get $this + i32.eqz if - i32.const 432 - i32.const 480 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $length + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this i32.const 0 - call $~lib/rt/itcms/__new - local.tee $buffer - i32.store $0 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $buffer - local.set $3 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/set/Set#clear (type $i32_=>_none) (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12421,21 +12640,16 @@ i32.const 0 i32.store $0 local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this i32.const 0 i32.const 4 i32.const 4 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 call $~lib/set/Set#set:buckets local.get $this i32.const 4 @@ -12448,6 +12662,11 @@ i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 call $~lib/set/Set#set:entries local.get $this i32.const 4 @@ -12458,20 +12677,13 @@ local.get $this i32.const 0 call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (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/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -12484,67 +12696,1182 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 4 + i32.const 24 + i32.const 5 call $~lib/rt/itcms/__new local.tee $this i32.store $0 end local.get $this i32.const 0 - call $~lib/array/Array#set:buffer - local.get $this - i32.const 0 - call $~lib/array/Array#set:dataStart + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets local.get $this - i32.const 0 - call $~lib/array/Array#set:byteLength + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask local.get $this i32.const 0 - call $~lib/array/Array#set:length_ - local.get $length - i32.const 1073741820 - i32.const 0 - i32.shr_u - i32.gt_u - if - i32.const 432 - i32.const 592 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $length - local.tee $2 + i32.const 4 i32.const 8 - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - i32.const 0 - i32.shl - local.set $bufferSize + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $bufferSize - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $buffer + local.get $1 i32.store $0 offset=4 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $this - local.get $buffer - call $~lib/array/Array#set:buffer + local.get $1 + call $~lib/set/Set#set:entries local.get $this - local.get $buffer - call $~lib/array/Array#set:dataStart + i32.const 4 + call $~lib/set/Set#set:entriesCapacity local.get $this - local.get $bufferSize - call $~lib/array/Array#set:byteLength + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 8 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 $0 + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/set/Set#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 16 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + call $~lib/set/Set#set:entries + local.get $this + i32.const 4 + call $~lib/set/Set#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/set/Set#set:entriesCount + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) + (local $buffer i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $length + i32.const 1073741820 + i32.gt_u + if + i32.const 432 + i32.const 480 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $length + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store $0 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $buffer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + call $~lib/array/Array#set:buffer + local.get $this + i32.const 0 + call $~lib/array/Array#set:dataStart + local.get $this + i32.const 0 + call $~lib/array/Array#set:byteLength + local.get $this + i32.const 0 + call $~lib/array/Array#set:length_ + local.get $length + i32.const 1073741820 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 432 + i32.const 592 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $length + local.tee $2 + i32.const 8 + local.tee $3 + local.get $2 + local.get $3 + i32.gt_u + select + i32.const 0 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $buffer + i32.store $0 offset=4 + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $this + local.get $buffer + call $~lib/array/Array#set:buffer + local.get $this + local.get $buffer + call $~lib/array/Array#set:dataStart + local.get $this + local.get $bufferSize + call $~lib/array/Array#set:byteLength local.get $this local.get $length call $~lib/array/Array#set:length_ @@ -12575,10 +13902,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -12604,7 +13931,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -12617,7 +13944,7 @@ local.set $length local.get $8 local.get $entry - i32.load8_s $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -12636,63 +13963,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -12803,10 +14074,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -12832,7 +14103,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -12845,7 +14116,7 @@ local.set $length local.get $8 local.get $entry - i32.load8_u $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -12866,62 +14137,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -13031,10 +14246,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13060,7 +14275,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13073,7 +14288,7 @@ local.set $length local.get $8 local.get $entry - i32.load16_s $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -13094,62 +14309,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -13259,10 +14418,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13288,7 +14447,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13301,7 +14460,7 @@ local.set $length local.get $8 local.get $entry - i32.load16_u $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -13322,62 +14481,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -13487,10 +14590,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13516,7 +14619,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13526,85 +14629,29 @@ local.tee $8 i32.const 1 i32.add - local.set $length - local.get $8 - local.get $entry - i32.load $0 - call $~lib/array/Array#__uset - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $values - local.get $length - call $~lib/array/Array#set:length - local.get $values - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 + local.set $length + local.get $8 + local.get $entry + call $~lib/set/SetEntry#get:key + call $~lib/array/Array#__uset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $values + local.get $length + call $~lib/array/Array#set:length + local.get $values + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $9 ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -13715,10 +14762,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13744,7 +14791,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13757,7 +14804,7 @@ local.set $length local.get $8 local.get $entry - i32.load $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -13778,62 +14825,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -13943,10 +14934,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13972,7 +14963,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -13985,7 +14976,7 @@ local.set $length local.get $8 local.get $entry - i64.load $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -14006,62 +14997,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -14171,10 +15106,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -14200,7 +15135,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -14213,7 +15148,7 @@ local.set $length local.get $8 local.get $entry - i64.load $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -14234,62 +15169,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 8 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -14399,10 +15278,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -14428,7 +15307,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=4 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -14441,7 +15320,7 @@ local.set $length local.get $8 local.get $entry - f32.load $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i @@ -14462,62 +15341,6 @@ global.set $~lib/memory/__stack_pointer local.get $9 ) - (func $~lib/set/Set#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/set/Set#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 16 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/set/Set#set:entries - local.get $this - i32.const 4 - call $~lib/set/Set#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/set/Set#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) (local $3 i32) @@ -14627,10 +15450,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 offset=8 + call $~lib/set/Set#get:entries local.set $start local.get $this - i32.load $0 offset=16 + call $~lib/set/Set#get:entriesOffset local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -14656,7 +15479,7 @@ i32.add local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/set/SetEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -14669,7 +15492,7 @@ local.set $length local.get $8 local.get $entry - f64.load $0 + call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset end local.get $i diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index dc5bd3edfa..729db17a33 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -6,13 +6,11 @@ (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i64_=>_none (func_subtype (param i32 i64) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $i32_i32_=>_i64 (func_subtype (param i32 i32) (result i64) func)) (type $i32_f32_=>_none (func_subtype (param i32 f32) func)) (type $i32_f64_=>_none (func_subtype (param i32 f64) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_=>_f32 (func_subtype (param i32 i32) (result f32) func)) - (type $i32_f64_=>_i32 (func_subtype (param i32 f64) (result i32) func)) (type $i32_i32_=>_f64 (func_subtype (param i32 i32) (result f64) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -2065,43 +2063,6 @@ call $~lib/set/Set#rehash end ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $0 i32) - (local $1 i32) - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - local.get $0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - ) (func $std/set/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -2602,7 +2563,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -2618,9 +2579,9 @@ i32.and i32.eqz if + local.get $0 local.get $7 i32.load $0 offset=4 - local.get $0 i32.add local.get $4 i32.load8_s $0 @@ -2634,7 +2595,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -4210,7 +4171,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -4226,9 +4187,9 @@ i32.and i32.eqz if + local.get $0 local.get $7 i32.load $0 offset=4 - local.get $0 i32.add local.get $4 i32.load8_u $0 @@ -4242,7 +4203,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -5823,7 +5784,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -5857,7 +5818,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -7437,7 +7398,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -7471,7 +7432,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -9033,7 +8994,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -9067,7 +9028,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -10605,7 +10566,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|02 + loop $for-loop|01 local.get $3 local.get $6 i32.lt_s @@ -10639,7 +10600,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|02 + br $for-loop|01 end end local.get $7 @@ -11236,90 +11197,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#has (type $i32_i64_=>_i32) (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/set/Set#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i64.load $0 - local.get $1 - i64.eq - end - br_if $__inlined_func$~lib/set/Set#find - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - local.set $0 - end - local.get $0 - i32.const 0 - i32.ne - ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -11806,43 +11683,6 @@ call $~lib/set/Set#rehash end ) - (func $~lib/set/Set#clear (type $i32_=>_none) (param $0 i32) - (local $1 i32) - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - local.get $0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - ) (func $std/set/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i64) @@ -11854,7 +11694,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11865,24 +11704,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store $0 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $2 + local.get $0 call $~lib/set/Set#constructor - local.tee $2 + local.tee $3 i32.store $0 loop $for-loop|0 local.get $1 i64.const 100 i64.lt_s if - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -11891,18 +11806,94 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find0 + loop $while-continue|04 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find0 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|04 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 call $~lib/builtins/abort unreachable end @@ -11913,7 +11904,7 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -11932,9 +11923,85 @@ i64.const 100 i64.lt_s if - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find7 + loop $while-continue|011 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find7 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|011 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -11944,12 +12011,88 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|018 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find14 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|018 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -11966,7 +12109,7 @@ br $for-loop|1 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -11988,16 +12131,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $6 i32.const 0 i32.store $0 - local.get $2 + local.get $3 i32.load $0 offset=8 - local.set $6 - local.get $2 + local.set $7 + local.get $3 i32.load $0 offset=16 local.set $4 - local.get $9 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -12006,25 +12149,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 i64.const 0 i64.store $0 - local.get $7 + local.get $0 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store $0 - local.get $10 + local.get $8 i32.const 0 i32.store $0 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=12 local.get $4 @@ -12047,59 +12190,61 @@ select i32.const 3 i32.shl - local.tee $7 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store $0 offset=4 - local.get $10 local.get $8 + local.get $0 i32.store $0 - local.get $8 + local.get $0 if - local.get $10 local.get $8 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 local.get $8 + local.get $0 i32.store $0 offset=4 - local.get $10 - local.get $7 + local.get $8 + local.get $9 i32.store $0 offset=8 - local.get $10 + local.get $8 local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store $0 - loop $for-loop|02 - local.get $3 + i32.const 0 + local.set $0 + loop $for-loop|04 + local.get $2 local.get $4 i32.lt_s if - local.get $6 - local.get $3 + local.get $7 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $7 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $8 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $7 + local.get $6 i64.load $0 i64.store $0 local.get $0 @@ -12107,18 +12252,18 @@ i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|02 + local.set $2 + br $for-loop|04 end end - local.get $10 + local.get $8 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $10 + local.get $8 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -12126,25 +12271,103 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 - local.get $10 + local.get $8 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store $0 offset=8 i32.const 0 local.set $0 loop $for-loop|2 local.get $0 - local.get $10 + local.get $8 i32.load $0 offset=12 i32.lt_s if - local.get $2 - local.get $10 + local.get $8 local.get $0 call $~lib/array/Array#__get - call $~lib/set/Set#has + local.set $1 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $2 + block $__inlined_func$~lib/set/Set#find29 + loop $while-continue|033 + local.get $2 + if + local.get $2 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $2 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find29 + local.get $5 + i32.const -2 + i32.and + local.set $2 + br $while-continue|033 + end + end + i32.const 0 + local.set $2 + end + local.get $2 i32.eqz if i32.const 0 @@ -12154,8 +12377,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $10 + local.get $4 + local.get $8 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -12166,9 +12389,9 @@ br $for-loop|2 end end - local.get $3 + local.get $4 i32.load $0 offset=20 - local.get $2 + local.get $3 i32.load $0 offset=20 i32.ne if @@ -12186,92 +12409,472 @@ i64.const 50 i64.lt_s if - local.get $2 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/set/Set#delete - local.get $2 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $1 - i64.const 1 - i64.add - local.set $1 - br $for-loop|3 - end - end - local.get $2 - i32.load $0 offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - i64.const 50 - i64.lt_s - if - local.get $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has - if + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find40 + loop $while-continue|044 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find40 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|044 + end + end i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $2 - local.get $1 - call $~lib/set/Set#add - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $0 i32.eqz if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/set/Set#delete - local.get $2 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find47 + loop $while-continue|051 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find47 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|051 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i64.const 1 + i64.add + local.set $1 + br $for-loop|3 + end + end + local.get $3 + i32.load $0 offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + i64.const 50 + i64.lt_s + if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find56 + loop $while-continue|060 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find56 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|060 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find63 + loop $while-continue|067 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find63 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|067 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + call $~lib/set/Set#delete + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find70 + loop $while-continue|074 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find70 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|074 + end + end + i32.const 0 + local.set $0 + end + local.get $0 + if + i32.const 0 i32.const 1568 i32.const 43 i32.const 5 @@ -12285,7 +12888,7 @@ br $for-loop|4 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -12297,9 +12900,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/set/Set#clear - local.get $2 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -12322,90 +12925,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#has (type $i32_i64_=>_i32) (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/set/Set#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i64.load $0 - local.get $1 - i64.eq - end - br_if $__inlined_func$~lib/set/Set#find - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - local.set $0 - end - local.get $0 - i32.const 0 - i32.ne - ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -12903,7 +13422,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -12914,24 +13432,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store $0 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $2 + local.get $0 call $~lib/set/Set#constructor - local.tee $2 + local.tee $3 i32.store $0 loop $for-loop|0 local.get $1 i64.const 100 i64.lt_u if - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $1 - call $~lib/set/Set#has + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -12940,12 +13534,88 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find0 + loop $while-continue|04 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find0 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|04 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -12962,7 +13632,7 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -12981,9 +13651,85 @@ i64.const 100 i64.lt_u if - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - call $~lib/set/Set#has + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find7 + loop $while-continue|011 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find7 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|011 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -12993,12 +13739,88 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 - call $~lib/set/Set#add - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $3 + local.get $1 + call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|018 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find14 + local.get $4 + i32.const -2 + i32.and + local.set $0 + br $while-continue|018 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -13015,7 +13837,7 @@ br $for-loop|1 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -13037,16 +13859,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $6 i32.const 0 i32.store $0 - local.get $2 + local.get $3 i32.load $0 offset=8 - local.set $6 - local.get $2 + local.set $7 + local.get $3 i32.load $0 offset=16 local.set $4 - local.get $9 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13055,25 +13877,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 i64.const 0 i64.store $0 - local.get $7 + local.get $0 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store $0 - local.get $10 + local.get $8 i32.const 0 i32.store $0 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $8 i32.const 0 i32.store $0 offset=12 local.get $4 @@ -13096,59 +13918,61 @@ select i32.const 3 i32.shl - local.tee $7 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store $0 offset=4 - local.get $10 local.get $8 + local.get $0 i32.store $0 - local.get $8 + local.get $0 if - local.get $10 local.get $8 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 local.get $8 + local.get $0 i32.store $0 offset=4 - local.get $10 - local.get $7 + local.get $8 + local.get $9 i32.store $0 offset=8 - local.get $10 + local.get $8 local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store $0 - loop $for-loop|02 - local.get $3 + i32.const 0 + local.set $0 + loop $for-loop|04 + local.get $2 local.get $4 i32.lt_s if - local.get $6 - local.get $3 + local.get $7 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $7 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $8 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $7 + local.get $6 i64.load $0 i64.store $0 local.get $0 @@ -13156,18 +13980,18 @@ i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|02 + local.set $2 + br $for-loop|04 end end - local.get $10 + local.get $8 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $10 + local.get $8 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -13175,84 +13999,314 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 - local.get $10 + local.get $8 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store $0 offset=8 i32.const 0 local.set $0 loop $for-loop|2 local.get $0 - local.get $10 + local.get $8 i32.load $0 offset=12 i32.lt_s if + local.get $8 + local.get $0 + call $~lib/array/Array#__get + local.set $1 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u local.get $2 - local.get $10 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $2 + block $__inlined_func$~lib/set/Set#find29 + loop $while-continue|033 + local.get $2 + if + local.get $2 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $2 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find29 + local.get $5 + i32.const -2 + i32.and + local.set $2 + br $while-continue|033 + end + end + i32.const 0 + local.set $2 + end + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $8 + local.get $0 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|2 + end + end + local.get $4 + i32.load $0 offset=20 + local.get $3 + i32.load $0 offset=20 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + i64.const 50 + i64.lt_u + if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find40 + loop $while-continue|044 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find40 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|044 + end + end + i32.const 0 + local.set $0 + end local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 24 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end local.get $3 - local.get $10 + local.get $1 + call $~lib/set/Set#delete + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - call $~lib/array/Array#__get - call $~lib/set/Set#add + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u local.get $0 - i32.const 1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl i32.add + i32.load $0 local.set $0 - br $for-loop|2 - end - end - local.get $3 - i32.load $0 offset=20 - local.get $2 - i32.load $0 offset=20 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - i64.const 50 - i64.lt_u - if - local.get $2 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if + block $__inlined_func$~lib/set/Set#find47 + loop $while-continue|051 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find47 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|051 + end + end i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $0 end - local.get $2 - local.get $1 - call $~lib/set/Set#delete - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $0 if i32.const 0 i32.const 1568 @@ -13268,7 +14322,7 @@ br $for-loop|3 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -13287,23 +14341,175 @@ i64.const 50 i64.lt_u if - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $1 - call $~lib/set/Set#has + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find56 + loop $while-continue|060 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find56 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|060 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find63 + loop $while-continue|067 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find63 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|067 + end + end + i32.const 0 + local.set $0 end - local.get $2 - local.get $1 - call $~lib/set/Set#add - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $0 i32.eqz if i32.const 0 @@ -13313,12 +14519,88 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $1 - call $~lib/set/Set#has + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find70 + loop $while-continue|074 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load $0 + i64.eq + end + br_if $__inlined_func$~lib/set/Set#find70 + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|074 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -13334,7 +14616,7 @@ br $for-loop|4 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -13346,9 +14628,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/set/Set#clear - local.get $2 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -14318,7 +15600,7 @@ local.get $9 local.get $10 i32.store $0 - loop $for-loop|02 + loop $for-loop|01 local.get $4 local.get $5 i32.lt_s @@ -14352,7 +15634,7 @@ i32.const 1 i32.add local.set $4 - br $for-loop|02 + br $for-loop|01 end end local.get $10 @@ -14955,93 +16237,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#has (type $i32_f64_=>_i32) (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i32) - local.get $0 - i32.load $0 - local.get $0 - i32.load $0 offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $0 - block $__inlined_func$~lib/set/Set#find - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load $0 offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - f64.load $0 - local.get $1 - f64.eq - end - br_if $__inlined_func$~lib/set/Set#find - local.get $3 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - local.set $0 - end - local.get $0 - i32.const 0 - i32.ne - ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -15539,10 +16734,10 @@ ) (func $std/set/testNumeric (type $none_=>_none) (local $0 i32) - (local $1 f64) - (local $2 i32) + (local $1 i32) + (local $2 f64) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -15559,24 +16754,102 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store $0 - local.get $2 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $2 + local.get $0 call $~lib/set/Set#constructor - local.tee $2 + local.tee $3 i32.store $0 loop $for-loop|0 - local.get $1 + local.get $2 f64.const 100 f64.lt if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find + local.get $5 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -15585,12 +16858,90 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $1 call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find0 + loop $while-continue|04 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find0 + local.get $5 + i32.const -2 + i32.and + local.set $0 + br $while-continue|04 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15600,14 +16951,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 f64.const 1 f64.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15620,15 +16971,93 @@ unreachable end f64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 f64.const 100 f64.lt if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find7 + loop $while-continue|011 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find7 + local.get $5 + i32.const -2 + i32.and + local.set $0 + br $while-continue|011 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15638,12 +17067,90 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 - call $~lib/set/Set#add - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $3 + local.get $2 + call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|018 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find14 + local.get $5 + i32.const -2 + i32.and + local.set $0 + br $while-continue|018 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15653,14 +17160,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 f64.const 1 f64.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15673,7 +17180,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15682,16 +17189,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $7 i32.const 0 i32.store $0 - local.get $2 + local.get $3 i32.load $0 offset=8 - local.set $6 - local.get $2 + local.set $8 + local.get $3 i32.load $0 offset=16 - local.set $4 - local.get $9 + local.set $5 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15700,28 +17207,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 i64.const 0 i64.store $0 - local.get $7 + local.get $0 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store $0 - local.get $10 + local.get $9 i32.const 0 i32.store $0 - local.get $10 + local.get $9 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 134217727 i32.gt_u if @@ -15734,50 +17241,52 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $7 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store $0 offset=4 - local.get $10 - local.get $8 + local.get $9 + local.get $0 i32.store $0 - local.get $8 + local.get $0 if - local.get $10 - local.get $8 + local.get $9 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $8 + local.get $9 + local.get $0 i32.store $0 offset=4 + local.get $9 local.get $10 - local.get $7 i32.store $0 offset=8 - local.get $10 - local.get $4 + local.get $9 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $7 local.get $9 - local.get $10 i32.store $0 - loop $for-loop|02 - local.get $3 - local.get $4 + i32.const 0 + local.set $0 + loop $for-loop|04 + local.get $1 + local.get $5 i32.lt_s if - local.get $6 - local.get $3 + local.get $8 + local.get $1 i32.const 4 i32.shl i32.add @@ -15787,7 +17296,7 @@ i32.and i32.eqz if - local.get $10 + local.get $9 i32.load $0 offset=4 local.get $0 i32.const 3 @@ -15801,44 +17310,124 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|02 + local.set $1 + br $for-loop|04 end end - local.get $10 + local.get $9 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $10 + local.get $6 + local.get $9 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $5 i32.store $0 offset=8 i32.const 0 local.set $0 loop $for-loop|2 local.get $0 - local.get $10 + local.get $9 i32.load $0 offset=12 i32.lt_s if - local.get $2 - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get - call $~lib/set/Set#has + local.set $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $1 + block $__inlined_func$~lib/set/Set#find29 + loop $while-continue|033 + local.get $1 + if + local.get $1 + i32.load $0 offset=8 + local.tee $6 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $1 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find29 + local.get $6 + i32.const -2 + i32.and + local.set $1 + br $while-continue|033 + end + end + i32.const 0 + local.set $1 + end + local.get $1 i32.eqz if i32.const 0 @@ -15848,8 +17437,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $10 + local.get $5 + local.get $9 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -15860,9 +17449,9 @@ br $for-loop|2 end end - local.get $3 + local.get $5 i32.load $0 offset=20 - local.get $2 + local.get $3 i32.load $0 offset=20 i32.ne if @@ -15874,15 +17463,93 @@ unreachable end f64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 f64.const 50 f64.lt if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find40 + loop $while-continue|044 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find40 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|044 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 @@ -15892,12 +17559,90 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $1 call $~lib/set/Set#delete + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find47 + loop $while-continue|051 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find47 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|051 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -15906,14 +17651,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 f64.const 1 f64.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -15926,15 +17671,93 @@ unreachable end f64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 f64.const 50 f64.lt if + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find56 + loop $while-continue|060 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find56 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|060 + end + end + i32.const 0 + local.set $0 + end + local.get $0 if i32.const 0 i32.const 1568 @@ -15943,27 +17766,183 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $1 call $~lib/set/Set#add + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 local.get $2 - local.get $1 - call $~lib/set/Set#has + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find63 + loop $while-continue|067 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find63 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|067 + end + end + i32.const 0 + local.set $0 + end + local.get $0 i32.eqz if i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + call $~lib/set/Set#delete + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $0 + block $__inlined_func$~lib/set/Set#find70 + loop $while-continue|074 + local.get $0 + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $2 + local.get $0 + f64.load $0 + f64.eq + end + br_if $__inlined_func$~lib/set/Set#find70 + local.get $1 + i32.const -2 + i32.and + local.set $0 + br $while-continue|074 + end + end + i32.const 0 + local.set $0 end - local.get $2 - local.get $1 - call $~lib/set/Set#delete - local.get $2 - local.get $1 - call $~lib/set/Set#has + local.get $0 if i32.const 0 i32.const 1568 @@ -15972,14 +17951,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 f64.const 1 f64.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -15991,9 +17970,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/set/Set#clear - local.get $2 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -16146,9 +18125,11 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16163,36 +18144,135 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end local.get $0 - i32.const 1073741820 - i32.gt_u + i32.const 3 + i32.store $0 offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 if - i32.const 1456 - i32.const 1504 - i32.const 52 - i32.const 43 + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#clear (type $i32_=>_none) (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 1836 + i32.lt_s + if + i32.const 34624 + i32.const 34672 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16208,18 +18288,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 3 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16230,10 +18314,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16251,16 +18339,16 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16276,18 +18364,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 5 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16298,10 +18390,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16319,16 +18415,16 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16344,18 +18440,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 7 + i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16366,10 +18466,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16387,16 +18491,16 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16412,18 +18516,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 9 + i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16434,10 +18542,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16455,16 +18567,16 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16480,18 +18592,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 11 + i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16502,10 +18618,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16523,16 +18643,16 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) + (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16548,18 +18668,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 - i32.const 13 + i32.const 15 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16570,10 +18694,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 - i32.const 32 + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16591,13 +18719,12 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) - (local $0 i32) + (func $~lib/set/Set#clear (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16615,19 +18742,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store $0 - local.get $0 - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16638,10 +18762,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16662,13 +18790,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#constructor (type $none_=>_i32) (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16684,18 +18811,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16706,10 +18837,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16727,7 +18862,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -16736,7 +18871,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16752,18 +18887,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16774,10 +18913,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16795,7 +18938,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -16804,7 +18947,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16820,18 +18963,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 i32.const 21 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -16842,10 +18989,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -16863,6 +19014,48 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1836 + i32.lt_s + if + i32.const 34624 + i32.const 34672 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1504 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 7ab9dd0cfe..536a40c5ad 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -63,15 +63,23 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 448 @@ -82,7 +90,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -93,19 +101,35 @@ drop local.get $value ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -117,9 +141,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -127,7 +155,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -179,7 +207,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -188,11 +216,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -211,7 +243,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -233,7 +265,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -254,6 +286,10 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -277,12 +313,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -301,7 +337,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -325,7 +361,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -407,33 +443,45 @@ (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -458,7 +506,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -558,10 +606,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -652,7 +700,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -705,7 +753,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -727,7 +775,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -735,7 +783,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -762,7 +810,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -770,7 +818,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -785,7 +833,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -980,7 +1028,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1090,7 +1138,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1344,7 +1392,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1367,7 +1415,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1807,7 +1855,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1984,7 +2032,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2054,7 +2102,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2066,13 +2114,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2116,7 +2164,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2155,9 +2203,9 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2212,6 +2260,10 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2223,7 +2275,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2240,7 +2292,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2248,7 +2300,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -2337,7 +2389,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -2359,7 +2411,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -2421,14 +2473,14 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2441,7 +2493,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2473,15 +2525,23 @@ local.get $value call $~lib/array/Array#__uset ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 448 @@ -2492,7 +2552,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2503,14 +2563,14 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2523,7 +2583,7 @@ (func $~lib/array/Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2555,15 +2615,23 @@ local.get $value call $~lib/array/Array#__uset ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 448 @@ -2574,7 +2642,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2585,14 +2653,14 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2605,7 +2673,7 @@ (func $~lib/array/Array#__set (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2637,15 +2705,23 @@ local.get $value call $~lib/array/Array#__uset ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 448 @@ -2656,7 +2732,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2667,14 +2743,14 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -2687,7 +2763,7 @@ (func $~lib/array/Array#__set (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if local.get $index @@ -2770,11 +2846,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2783,11 +2863,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2796,11 +2880,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -2809,11 +2897,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 463033fa2b..dd4cf82d4e 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -1,8 +1,8 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) @@ -116,11 +116,15 @@ (elem $0 (i32.const 1) $start:std/staticarray~anonymous|0 $start:std/staticarray~anonymous|1 $start:std/staticarray~anonymous|2 $start:std/staticarray~anonymous|3 $start:std/staticarray~anonymous|4 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|9 $start:std/staticarray~anonymous|10 $start:std/staticarray~anonymous|11 $start:std/staticarray~anonymous|12 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/staticarray/StaticArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -178,14 +182,18 @@ local.get $value call $~lib/staticarray/StaticArray#__uset ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -197,9 +205,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -207,7 +219,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -259,7 +271,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -268,11 +280,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -291,7 +307,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -313,7 +329,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -334,6 +350,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -357,12 +381,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -381,7 +405,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -405,7 +429,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -484,36 +508,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -538,7 +578,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -638,10 +678,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -732,7 +772,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -785,7 +825,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -807,7 +847,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -815,7 +855,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -842,7 +882,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -850,7 +890,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -865,7 +905,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1060,7 +1100,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1170,7 +1210,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1424,7 +1464,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1447,7 +1487,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1887,7 +1927,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2064,7 +2104,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2134,7 +2174,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2146,13 +2186,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2196,7 +2236,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2235,14 +2275,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2402,15 +2442,23 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 64 @@ -2421,7 +2469,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -2436,7 +2484,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -2444,7 +2492,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2596,10 +2644,18 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array<~lib/string/String>#get:length_ + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) i32.const 0 drop @@ -2615,7 +2671,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 3 i32.shr_u ) @@ -2706,7 +2762,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -3372,6 +3428,18 @@ i32.const 2 i32.ge_s ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -3383,7 +3451,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -3400,7 +3468,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -3408,7 +3476,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -3429,7 +3497,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -3451,7 +3519,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -3513,16 +3581,16 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $oldLen i32) (local $len i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ local.set $oldLen local.get $oldLen i32.const 1 @@ -3536,7 +3604,7 @@ i32.const 0 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $oldLen i32.const 2 i32.shl @@ -4956,7 +5024,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end loop $while-continue|0 @@ -4988,11 +5056,15 @@ local.get $1 call $~lib/staticarray/StaticArray#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5014,7 +5086,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end loop $while-continue|0 @@ -5046,6 +5118,10 @@ local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__visit ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -5054,11 +5130,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -5087,7 +5163,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5096,9 +5172,13 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5107,9 +5187,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5118,9 +5202,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>void>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5129,9 +5217,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/staticarray/StaticArray%29=>bool>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5140,9 +5232,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/staticarray/StaticArray%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -5512,7 +5608,7 @@ global.get $std/staticarray/arr1 i32.const 20 i32.sub - i32.load $0 offset=12 + call $~lib/rt/common/OBJECT#get:rtId i32.const 3 i32.eq i32.eqz @@ -7537,7 +7633,7 @@ drop local.get $out local.get $source - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $outSize memory.copy $0 $0 local.get $out @@ -7905,10 +8001,10 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $outStart local.get $other - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $otherStart local.get $this local.set $thisStart @@ -8233,7 +8329,7 @@ local.tee $out i32.store $0 local.get $out - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 local.set $i diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 383c3e2d30..c3ed3f8b0b 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -2822,7 +2822,7 @@ local.get $1 i32.sub ) - (func $~lib/staticarray/StaticArray~visit (type $i32_=>_none) (param $0 i32) + (func $~lib/staticarray/StaticArray#__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2883,11 +2883,11 @@ return end local.get $0 - call $~lib/staticarray/StaticArray~visit + call $~lib/staticarray/StaticArray#__visit return end local.get $0 - call $~lib/staticarray/StaticArray~visit + call $~lib/staticarray/StaticArray#__visit return end local.get $0 @@ -2961,7 +2961,6 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 96 i32.sub @@ -2972,11 +2971,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $0 i32.const 0 i32.const 96 memory.fill $0 - local.get $5 + local.get $0 i32.const 1056 i32.store $0 i32.const 1056 @@ -3133,17 +3132,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.const 1312 i32.const 12 memory.copy $0 $0 - local.get $5 + local.get $0 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -3158,9 +3157,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3175,9 +3174,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -3192,9 +3191,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3212,16 +3211,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -3237,17 +3236,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.const 1312 i32.const 12 memory.copy $0 $0 - local.get $5 + local.get $0 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $0 i32.store $0 - local.get $5 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3264,25 +3263,24 @@ i32.const 8 i32.const 5 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store $0 offset=4 - local.get $5 + local.get $0 i32.const 0 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $5 + local.get $0 i32.const 1 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $5 + local.get $0 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.set $5 - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3304,7 +3302,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $0 local.get $6 i32.store $0 offset=8 local.get $6 @@ -3324,7 +3322,7 @@ unreachable end loop $for-loop|0 - local.get $0 + local.get $1 local.get $6 i32.const 20 i32.sub @@ -3334,7 +3332,7 @@ i32.lt_s if local.get $6 - local.get $0 + local.get $1 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -3344,10 +3342,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|0 end end @@ -3356,14 +3354,14 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $5 + local.tee $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 call $~lib/staticarray/StaticArray.fromArray local.tee $6 i32.store $0 offset=16 - local.get $5 + local.get $0 i32.load $0 offset=12 local.get $6 i32.const 20 @@ -3381,18 +3379,18 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 + local.get $1 local.get $0 - local.get $5 i32.load $0 offset=12 i32.lt_s if local.get $6 - local.get $0 + local.get $1 call $~lib/staticarray/StaticArray#__get - local.get $5 local.get $0 + local.get $1 call $~lib/array/Array#__get i32.ne if @@ -3403,10 +3401,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|1 end end @@ -3416,12 +3414,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store $0 local.get $0 - local.get $5 + local.get $1 call $~lib/staticarray/StaticArray.fromArray local.tee $0 i32.store $0 offset=16 @@ -3444,12 +3442,12 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.const 1856 i64.load $0 align=1 i64.store $0 align=1 local.get $0 - local.get $5 + local.get $1 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer local.set $0 @@ -3464,7 +3462,7 @@ local.get $6 i32.store $0 offset=24 local.get $0 - local.get $5 + local.get $1 local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> local.tee $0 @@ -3498,7 +3496,7 @@ local.get $6 i32.store $0 offset=24 local.get $0 - local.get $5 + local.get $1 local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> local.tee $0 @@ -3509,7 +3507,7 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $5 + local.get $1 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3529,15 +3527,15 @@ i32.const 20 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 2128 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=32 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3549,7 +3547,7 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3564,9 +3562,11 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $1 loop $for-loop|2 - local.get $2 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3574,22 +3574,22 @@ i32.shr_u i32.lt_s if - local.get $5 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store $0 local.get $0 - local.get $2 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store $0 offset=24 - local.get $6 local.get $7 + local.get $8 call $~lib/string/String.__eq i32.eqz if @@ -3600,15 +3600,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3633,15 +3633,15 @@ local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $2 + local.tee $7 + local.get $1 i32.store $0 - local.get $6 + local.get $7 i32.const 1984 i32.store $0 offset=24 - local.get $2 + local.get $1 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -3658,10 +3658,10 @@ call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store $0 - local.get $2 + local.get $1 i32.const 2016 i32.store $0 offset=24 local.get $0 @@ -3677,13 +3677,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> local.tee $0 i32.store $0 offset=36 - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3707,7 +3707,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3719,7 +3719,7 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3735,7 +3735,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3756,7 +3756,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3783,10 +3783,10 @@ call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store $0 - local.get $2 + local.get $1 i32.const 2080 i32.store $0 offset=24 local.get $0 @@ -3802,7 +3802,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3823,7 +3823,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3850,10 +3850,10 @@ call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store $0 - local.get $2 + local.get $1 i32.const 2016 i32.store $0 offset=24 local.get $0 @@ -3873,12 +3873,12 @@ i32.const 20 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 2304 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $2 + local.get $1 i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer local.set $0 @@ -3886,19 +3886,19 @@ i32.const 8 i32.const 2352 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store $0 offset=24 local.get $0 - local.get $2 - local.get $5 + local.get $1 + local.get $6 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> local.tee $0 i32.store $0 offset=44 local.get $0 i32.load $0 offset=12 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3919,19 +3919,19 @@ i32.const 8 i32.const 2416 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store $0 offset=24 local.get $0 - local.get $2 - local.get $5 + local.get $1 + local.get $6 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> local.tee $0 i32.store $0 offset=44 local.get $0 i32.load $0 offset=12 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3953,17 +3953,17 @@ i32.const 20 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 2448 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $2 + local.get $1 i32.store $0 offset=48 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store $0 offset=24 - local.get $2 + local.get $1 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -3980,7 +3980,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store $0 offset=24 - local.get $2 + local.get $1 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -3995,7 +3995,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store $0 offset=24 - local.get $2 + local.get $1 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4010,7 +4010,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store $0 offset=24 - local.get $2 + local.get $1 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4028,37 +4028,37 @@ i32.const 8 i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 2496 i64.load $0 align=1 i64.store $0 align=1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store $0 i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 3 i32.shr_u - local.tee $5 - i32.eqz local.tee $6 - local.get $6 + i32.eqz + local.tee $7 + local.get $7 i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if i32.const 1 - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -4068,10 +4068,10 @@ f64.ne br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -4090,37 +4090,37 @@ i32.const 4 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 2528 i32.load $0 align=1 i32.store $0 align=1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store $0 i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $5 - i32.eqz local.tee $6 - local.get $6 + i32.eqz + local.tee $7 + local.get $7 i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|09 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if i32.const 1 - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -4130,10 +4130,10 @@ f32.ne br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|09 end end @@ -4153,34 +4153,36 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2560 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $2 + local.get $6 i32.store $0 offset=52 + i32.const 0 + local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $7 + i32.eqz + local.get $7 i32.eqz - local.tee $6 - local.get $6 i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - loop $while-continue|012 + loop $while-continue|01 local.get $1 - local.get $5 + local.get $7 i32.lt_s if - local.get $2 + local.get $6 local.get $1 local.tee $0 i32.const 2 @@ -4194,7 +4196,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|012 + br $while-continue|01 end end i32.const -1 @@ -4213,25 +4215,25 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf13 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $7 + i32.eqz + local.get $7 i32.eqz - local.tee $6 - local.get $6 i32.or - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 - loop $while-continue|028 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf2 + loop $while-continue|03 local.get $1 - local.get $5 + local.get $7 i32.lt_s if - local.get $2 + local.get $6 local.get $1 local.tee $0 i32.const 2 @@ -4240,12 +4242,12 @@ i32.load $0 i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf2 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|028 + br $while-continue|03 end end i32.const -1 @@ -4266,26 +4268,26 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf4 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $7 i32.eqz - local.get $5 + local.get $7 i32.const 2 i32.le_u i32.or - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - loop $while-continue|033 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf4 + loop $while-continue|05 local.get $1 - local.get $5 + local.get $7 i32.lt_s if - local.get $2 + local.get $6 local.get $1 local.tee $0 i32.const 2 @@ -4294,12 +4296,12 @@ i32.load $0 i32.const 9 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf4 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|033 + br $while-continue|05 end end i32.const -1 @@ -4318,8 +4320,8 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf6 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4327,7 +4329,7 @@ i32.shr_u local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf6 local.get $0 i32.const 1 i32.sub @@ -4338,12 +4340,12 @@ i32.gt_s select local.set $1 - loop $while-continue|037 + loop $while-continue|07 local.get $0 local.get $1 i32.gt_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4351,12 +4353,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf6 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|037 + br $while-continue|07 end end i32.const -1 @@ -4375,8 +4377,8 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf38 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf8 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4384,7 +4386,7 @@ i32.shr_u local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf8 local.get $0 i32.const 3 i32.sub @@ -4395,12 +4397,12 @@ i32.gt_s select local.set $1 - loop $while-continue|041 + loop $while-continue|010 local.get $0 local.get $1 i32.gt_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4408,12 +4410,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf8 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|041 + br $while-continue|010 end end i32.const -1 @@ -4433,19 +4435,19 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2592 i32.const 16 memory.copy $0 $0 local.get $0 - local.get $2 + local.get $6 i32.store $0 offset=56 i32.const 1 global.set $~argumentsLength i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4470,7 +4472,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $0 i32.const 2 i32.shl @@ -4502,7 +4504,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4512,24 +4514,24 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $7 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 local.get $0 - local.get $5 + local.get $7 i32.add - local.get $5 + local.get $7 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $5 + local.get $7 i32.ge_s select local.get $0 @@ -4542,7 +4544,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $0 local.tee $1 i32.const 2 @@ -4576,7 +4578,7 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf7 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4594,12 +4596,12 @@ i32.gt_u select local.set $1 - loop $while-continue|044 + loop $while-continue|011 local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4612,7 +4614,7 @@ i32.const 1 i32.sub local.set $1 - br $while-continue|044 + br $while-continue|011 end end i32.const -1 @@ -4631,8 +4633,8 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4640,7 +4642,7 @@ i32.shr_u local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 i32.const 2 local.get $0 i32.const 1 @@ -4650,12 +4652,12 @@ i32.gt_u select local.set $1 - loop $while-continue|048 + loop $while-continue|013 local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4663,12 +4665,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|048 + br $while-continue|013 end end i32.const -1 @@ -4685,8 +4687,8 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4694,17 +4696,17 @@ i32.shr_u local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 local.get $0 i32.const 2 i32.sub local.set $1 - loop $while-continue|052 + loop $while-continue|015 local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4712,12 +4714,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|052 + br $while-continue|015 end end i32.const -1 @@ -4734,8 +4736,8 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4743,17 +4745,17 @@ i32.shr_u local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 local.get $0 i32.const 1 i32.sub local.set $1 - loop $while-continue|056 + loop $while-continue|017 local.get $1 i32.const 0 i32.ge_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -4761,12 +4763,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|056 + br $while-continue|017 end end i32.const -1 @@ -4944,10 +4946,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i32.const 0 i32.store $0 - local.get $2 + local.get $6 i32.const 2800 i32.store $0 local.get $1 @@ -4984,15 +4986,15 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 3104 i64.load $0 align=1 i64.store $0 align=1 local.get $0 - local.get $2 + local.get $6 i32.store $0 offset=68 i32.const 1 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load $0 offset=16 @@ -5004,12 +5006,12 @@ i32.gt_u select local.set $1 - loop $for-loop|060 + loop $for-loop|04 local.get $0 local.get $1 i32.gt_s if - local.get $2 + local.get $6 local.get $1 i32.const 2 i32.shl @@ -5020,10 +5022,10 @@ i32.const 1 i32.add local.set $1 - br $for-loop|060 + br $for-loop|04 end end - local.get $2 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -5034,7 +5036,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -5052,14 +5054,14 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 3136 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $2 + local.get $1 i32.store $0 offset=72 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load $0 offset=16 @@ -5069,52 +5071,50 @@ i32.const 1 i32.gt_u if - i32.const 0 - local.set $1 local.get $0 i32.const 1 i32.shr_u - local.set $5 + local.set $6 local.get $0 i32.const 1 i32.sub local.set $0 - loop $while-continue|064 - local.get $1 - local.get $5 + loop $while-continue|01023 + local.get $2 + local.get $6 i32.lt_u if - local.get $2 local.get $1 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load $0 - local.set $7 - local.get $6 - local.get $2 - local.get $0 + local.set $8 + local.get $7 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const 2 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load $0 i32.store $0 - local.get $6 local.get $7 + local.get $8 i32.store $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $while-continue|064 + local.set $2 + br $while-continue|01023 end end end - local.get $2 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -5127,7 +5127,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -5140,7 +5140,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -5265,12 +5265,12 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.const 3216 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $10 + local.get $8 i32.store $0 offset=80 global.get $~lib/memory/__stack_pointer local.tee $0 @@ -5289,53 +5289,53 @@ i32.const 0 i32.store $0 local.get $1 - local.get $10 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $1 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $6 i32.store $0 - local.get $5 + local.get $6 i32.load $0 offset=4 - local.set $6 + local.set $7 i32.const 0 - local.set $1 - loop $for-loop|042 + local.set $2 + loop $for-loop|018 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 + local.get $2 i32.const 2 i32.shl - local.tee $7 - local.get $10 + local.tee $9 + local.get $8 i32.add i32.load $0 - local.set $8 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $6 local.get $7 + local.get $9 i32.add - local.get $8 - local.get $1 local.get $10 + local.get $2 + local.get $8 i32.const 3248 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|042 + local.set $2 + br $for-loop|018 end end global.get $~lib/memory/__stack_pointer @@ -5343,9 +5343,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=84 - local.get $5 + local.get $6 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -5358,7 +5358,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $6 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -5371,7 +5371,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $6 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -5388,21 +5388,21 @@ i32.const 3280 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|070 + local.set $1 + loop $for-loop|021 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5411,16 +5411,16 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3280 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|070 + local.set $0 + br $for-loop|021 end end global.get $std/staticarray/maxVal @@ -5435,10 +5435,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $9 i32.const 3312 i32.store $0 offset=24 - local.get $6 + local.get $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5455,52 +5455,50 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $7 i32.store $0 - i32.const 0 - local.set $1 - local.get $10 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $11 - loop $for-loop|045 - local.get $1 - local.get $11 + local.set $10 + loop $for-loop|024 + local.get $5 + local.get $10 i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $5 i32.const 2 i32.shl i32.add i32.load $0 - local.set $5 + local.set $11 i32.const 3 global.set $~argumentsLength + local.get $11 local.get $5 - local.get $1 - local.get $10 + local.get $8 i32.const 3312 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $9 + local.get $7 i32.load $0 offset=12 local.tee $12 i32.const 1 i32.add - local.tee $8 - local.get $9 - i32.load $0 offset=8 local.tee $2 + local.get $7 + i32.load $0 offset=8 + local.tee $0 i32.const 2 i32.shr_u i32.gt_u if - local.get $8 + local.get $2 i32.const 268435455 i32.gt_u if @@ -5511,39 +5509,37 @@ call $~lib/builtins/abort unreachable end - local.get $9 - i32.load $0 - local.tee $0 - local.set $13 block $__inlined_func$~lib/rt/itcms/__renew i32.const 1073741820 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $0 i32.const 8 - local.get $8 - local.get $8 + local.get $2 + local.get $2 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $7 - local.get $2 - local.get $7 + local.tee $1 + local.get $0 + local.get $1 i32.gt_u select - local.tee $14 - local.get $0 + local.tee $6 + local.get $7 + i32.load $0 + local.tee $1 i32.const 20 i32.sub - local.tee $7 + local.tee $13 i32.load $0 i32.const -4 i32.and @@ -5551,78 +5547,78 @@ i32.sub i32.le_u if - local.get $7 - local.get $14 + local.get $13 + local.get $6 i32.store $0 offset=16 + local.get $1 + local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $14 - local.get $7 + local.get $6 + local.get $13 i32.load $0 offset=12 call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $14 - local.get $7 - i32.load $0 offset=16 local.tee $0 - local.get $0 - local.get $14 - i32.gt_u + local.get $1 + local.get $6 + local.get $13 + i32.load $0 offset=16 + local.tee $13 + local.get $6 + local.get $13 + i32.lt_u select memory.copy $0 $0 - local.get $2 - local.set $0 end local.get $0 - local.get $13 + local.get $1 i32.ne if - local.get $9 + local.get $7 local.get $0 i32.store $0 - local.get $9 + local.get $7 local.get $0 i32.store $0 offset=4 local.get $0 if - local.get $9 + local.get $7 local.get $0 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $9 - local.get $14 + local.get $7 + local.get $6 i32.store $0 offset=8 end - local.get $9 + local.get $7 i32.load $0 offset=4 local.get $12 i32.const 2 i32.shl i32.add - local.get $5 + local.get $11 i32.store $0 - local.get $9 - local.get $8 + local.get $7 + local.get $2 i32.store $0 offset=12 end - local.get $1 + local.get $5 i32.const 1 i32.add - local.set $1 - br $for-loop|045 + local.set $5 + br $for-loop|024 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $9 + local.get $7 i32.store $0 offset=88 - local.get $9 + local.get $7 i32.load $0 offset=12 i32.const 2 i32.ne @@ -5634,7 +5630,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $7 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -5647,7 +5643,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $7 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -5667,19 +5663,19 @@ local.set $0 i32.const 0 local.set $1 - local.get $10 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|076 + loop $for-loop|027 local.get $1 local.get $2 i32.lt_s if - local.get $10 + local.get $8 local.get $1 i32.const 2 i32.shl @@ -5691,7 +5687,7 @@ local.get $0 local.get $5 local.get $1 - local.get $10 + local.get $8 i32.const 3344 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -5700,7 +5696,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|076 + br $for-loop|027 end end local.get $0 @@ -5718,8 +5714,8 @@ i32.const 3376 i32.store $0 offset=24 i32.const 0 - local.set $0 - local.get $10 + local.set $1 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 @@ -5727,14 +5723,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|080 - local.get $1 + local.set $0 + loop $for-loop|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5742,22 +5738,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $10 + local.get $2 + local.get $0 + local.get $8 i32.const 3376 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|080 + local.set $0 + br $for-loop|030 end end - local.get $0 + local.get $1 i32.const 6 i32.ne if @@ -5773,21 +5769,21 @@ i32.const 3408 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|084 + local.set $1 + loop $for-loop|017 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5797,18 +5793,18 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3408 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#some drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|084 + local.set $0 + br $for-loop|017 end end i32.const 0 @@ -5822,26 +5818,26 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#some86 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#some19 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|089 + local.set $1 + loop $for-loop|023 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5851,18 +5847,18 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3440 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#some86 + br_if $__inlined_func$~lib/staticarray/StaticArray#some19 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|089 + local.set $0 + br $for-loop|023 end end i32.const 0 @@ -5880,21 +5876,21 @@ i32.const 3472 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|093 + local.set $1 + loop $for-loop|029 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5904,19 +5900,19 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3472 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#every drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|093 + local.set $0 + br $for-loop|029 end end i32.const 1 @@ -5930,26 +5926,26 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#every95 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#every31 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|098 + local.set $1 + loop $for-loop|035 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -5959,19 +5955,19 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3504 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#every95 + br_if $__inlined_func$~lib/staticarray/StaticArray#every31 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|098 + local.set $0 + br $for-loop|035 end end i32.const 1 @@ -5988,22 +5984,22 @@ i32.const 3536 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findIndex - loop $for-loop|0102 + loop $for-loop|041 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -6012,23 +6008,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3536 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0102 + local.set $0 + br $for-loop|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -6043,22 +6039,22 @@ i32.const 3568 i32.store $0 offset=24 i32.const 0 - local.set $1 - local.get $10 + local.set $0 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#findIndex104 - loop $for-loop|0107 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#findIndex43 + loop $for-loop|047 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $10 - local.get $1 + local.get $8 + local.get $0 i32.const 2 i32.shl i32.add @@ -6067,23 +6063,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.const 3568 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex104 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex43 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0107 + local.set $0 + br $for-loop|047 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -6097,7 +6093,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store $0 offset=24 - local.get $10 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 @@ -6107,12 +6103,12 @@ i32.sub local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex - loop $for-loop|0111 + loop $for-loop|053 local.get $1 i32.const 0 i32.ge_s if - local.get $10 + local.get $8 local.get $1 i32.const 2 i32.shl @@ -6123,7 +6119,7 @@ global.set $~argumentsLength local.get $0 local.get $1 - local.get $10 + local.get $8 i32.const 3600 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -6132,7 +6128,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0111 + br $for-loop|053 end end i32.const -1 @@ -6152,7 +6148,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store $0 offset=24 - local.get $10 + local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 @@ -6161,13 +6157,13 @@ i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 - loop $for-loop|0116 + block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex55 + loop $for-loop|059 local.get $1 i32.const 0 i32.ge_s if - local.get $10 + local.get $8 local.get $1 i32.const 2 i32.shl @@ -6178,16 +6174,16 @@ global.set $~argumentsLength local.get $0 local.get $1 - local.get $10 + local.get $8 i32.const 3632 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 + br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex55 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0116 + br $for-loop|059 end end i32.const -1 @@ -6209,17 +6205,17 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 3664 i32.const 16 memory.copy $0 $0 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=92 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6240,25 +6236,25 @@ unreachable end i32.const 3712 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store $0 end - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -6269,7 +6265,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6282,7 +6278,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -6295,7 +6291,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6314,12 +6310,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0121 + loop $while-continue|034 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0121 + br $while-continue|034 end end end diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 6341fb43dd..bff4bcb8d6 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) @@ -223,22 +223,26 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -250,9 +254,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -260,7 +268,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -312,7 +320,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -321,11 +329,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -344,7 +356,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -366,7 +378,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -387,6 +399,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -410,12 +430,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -434,7 +454,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -458,7 +478,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -537,36 +557,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -591,7 +627,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -691,10 +727,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -785,7 +821,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -838,7 +874,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -860,7 +896,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -868,7 +904,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -895,7 +931,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -903,7 +939,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -918,7 +954,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1113,7 +1149,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1223,7 +1259,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1477,7 +1513,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1500,7 +1536,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1940,7 +1976,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2117,7 +2153,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2187,7 +2223,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2199,13 +2235,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2249,7 +2285,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2288,14 +2324,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2354,7 +2390,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2548,6 +2584,10 @@ end local.get $c0 ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2559,7 +2599,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2576,7 +2616,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2584,7 +2624,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 3e2001c8f2..2bcb711df1 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) @@ -63,20 +63,24 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String.UTF16.byteLength (type $i32_=>_i32) (param $str i32) (result i32) local.get $str i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -88,9 +92,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -98,7 +106,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -150,7 +158,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -159,11 +167,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -182,7 +194,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -204,7 +216,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -225,6 +237,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -248,12 +268,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -272,7 +292,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -296,7 +316,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -375,36 +395,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -429,7 +465,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -529,10 +565,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -623,7 +659,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -676,7 +712,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -698,7 +734,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -706,7 +742,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -733,7 +769,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -741,7 +777,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -756,7 +792,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -951,7 +987,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1061,7 +1097,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1315,7 +1351,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1338,7 +1374,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1778,7 +1814,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1955,7 +1991,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2025,7 +2061,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2037,13 +2073,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2087,7 +2123,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2126,14 +2162,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2192,7 +2228,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2212,7 +2248,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) (func $~lib/string/String.UTF16.decode (type $i32_=>_i32) (param $buf i32) (result i32) local.get $buf @@ -2380,7 +2416,7 @@ local.get $str i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $strEnd local.get $nullTerminated @@ -2750,6 +2786,10 @@ local.get $errorMode call $~lib/string/String.UTF8.encode ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2761,7 +2801,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2778,7 +2818,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2786,7 +2826,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index d936e80c5e..5f196bb90d 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_none (func_subtype func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32 i32) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) @@ -18,11 +18,15 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index c03008a224..24732d6819 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) @@ -548,11 +548,15 @@ (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -787,14 +791,14 @@ i32.const 65536 i32.add ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -806,9 +810,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -816,7 +824,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -868,7 +876,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -877,11 +885,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -900,7 +912,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -922,7 +934,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -943,6 +955,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -966,12 +986,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -990,7 +1010,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -1014,7 +1034,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -1093,36 +1113,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -1147,7 +1183,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1247,10 +1283,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -1341,7 +1377,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1394,7 +1430,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1416,7 +1452,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1424,7 +1460,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1451,7 +1487,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1459,7 +1495,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1474,7 +1510,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1669,7 +1705,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1779,7 +1815,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -2033,7 +2069,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -2056,7 +2092,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2496,7 +2532,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2673,7 +2709,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2743,7 +2779,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2755,13 +2791,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2805,7 +2841,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2844,14 +2880,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -3059,10 +3095,18 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/string/String#startsWith (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start i32) (result i32) (local $len i32) (local $4 i32) @@ -5969,6 +6013,10 @@ call $~lib/string/String.__gt i32.eqz ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -5980,7 +6028,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -5997,7 +6045,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -6005,7 +6053,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -6014,9 +6062,13 @@ memory.copy $0 $0 local.get $newPtr ) - (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl @@ -6030,6 +6082,18 @@ i32.const 1 call $~lib/rt/itcms/__link ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) (local $oldData i32) @@ -6042,7 +6106,7 @@ (local $12 i32) (local $newData i32) local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $oldCapacity local.get $newSize local.get $oldCapacity @@ -6064,7 +6128,7 @@ unreachable end local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $oldData local.get $newSize local.tee $6 @@ -6126,16 +6190,16 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $oldLen i32) (local $len i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ local.set $oldLen local.get $oldLen i32.const 1 @@ -6149,7 +6213,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $oldLen i32.const 2 i32.shl @@ -6167,7 +6231,7 @@ ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -8179,11 +8243,15 @@ call $~lib/rt/itcms/__visit end ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -8192,6 +8260,10 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) @@ -8200,11 +8272,11 @@ i32.const 1 drop local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $cur local.get $cur local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.const 2 i32.shl i32.add @@ -8233,7 +8305,7 @@ end end local.get $this - i32.load $0 + call $~lib/array/Array<~lib/string/String>#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -8420,7 +8492,7 @@ local.tee $result i32.store $0 offset=8 local.get $result - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $resultStart i32.const 0 local.set $i @@ -8484,7 +8556,7 @@ local.tee $result|14 i32.store $0 offset=16 local.get $result|14 - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 688 i32.store $0 local.get $result|14 @@ -24745,7 +24817,7 @@ local.tee $out i32.store $0 local.get $units - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -26441,7 +26513,7 @@ i32.store $0 local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if i32.const 240 @@ -26453,7 +26525,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index 91310cedff..d99cc07c9b 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) @@ -102,14 +102,14 @@ end local.get $id ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -121,9 +121,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -131,7 +135,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -183,7 +187,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -192,11 +196,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -215,7 +223,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -237,7 +245,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -258,6 +266,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -281,12 +297,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -305,7 +321,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -329,7 +345,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -408,36 +424,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -462,7 +494,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -562,10 +594,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -656,7 +688,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -709,7 +741,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -731,7 +763,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -739,7 +771,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -766,7 +798,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -774,7 +806,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -789,7 +821,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -984,7 +1016,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1094,7 +1126,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1348,7 +1380,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1371,7 +1403,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1811,7 +1843,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1988,7 +2020,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2058,7 +2090,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2070,13 +2102,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2120,7 +2152,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2159,14 +2191,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2289,87 +2321,91 @@ end end ) - (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=20 ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -2636,6 +2672,22 @@ end return ) + (func $~lib/map/Map<~lib/string/String,usize>#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) @@ -2793,6 +2845,10 @@ i32.const 0 i32.ne ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/map/Map<~lib/string/String,usize>#get (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) local.get $this @@ -2812,21 +2868,37 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:value ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) + (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map<~lib/string/String,usize>#get:entries (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/map/Map<~lib/string/String,usize>#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -2881,11 +2953,11 @@ local.tee $newEntries i32.store $0 offset=4 local.get $this - i32.load $0 offset=8 + call $~lib/map/Map<~lib/string/String,usize>#get:entries local.set $oldPtr local.get $oldPtr local.get $this - i32.load $0 offset=16 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset i32.const 12 i32.mul i32.add @@ -2902,7 +2974,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - i32.load $0 offset=8 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext i32.const 1 i32.and i32.eqz @@ -2911,7 +2983,7 @@ local.set $newEntry global.get $~lib/memory/__stack_pointer local.get $oldEntry - i32.load $0 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:key local.tee $oldEntryKey i32.store $0 offset=8 local.get $newEntry @@ -2919,7 +2991,7 @@ call $~lib/map/MapEntry<~lib/string/String,usize>#set:key local.get $newEntry local.get $oldEntry - i32.load $0 offset=4 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:value call $~lib/map/MapEntry<~lib/string/String,usize>#set:value local.get $oldEntryKey call $~lib/util/hash/HASH<~lib/string/String> @@ -2965,7 +3037,7 @@ call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3037,15 +3109,31 @@ local.get $h return ) + (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/map/Map#get:bucketsMask (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#get:taggedNext (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/map/MapEntry#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) (local $taggedNext i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul @@ -3058,7 +3146,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3066,7 +3154,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/map/MapEntry#get:key local.get $key i32.eq else @@ -3087,158 +3175,40 @@ end i32.const 0 ) - (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 + (func $~lib/map/Map#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store $0 offset=8 + (func $~lib/map/Map#get:entriesCapacity (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 ) - (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) - (local $newBucketsCapacity i32) - (local $newBuckets i32) - (local $newEntriesCapacity i32) - (local $newEntries i32) - (local $oldPtr i32) - (local $oldEnd i32) - (local $newPtr i32) - (local $9 i32) - (local $oldEntry i32) - (local $newEntry i32) - (local $oldEntryKey i32) - (local $newBucketIndex i32) - (local $newBucketPtrBase i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - local.get $newBucketsMask - i32.const 1 - i32.add - local.set $newBucketsCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newBucketsCapacity - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newBuckets - i32.store $0 - local.get $newBucketsCapacity - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $newEntriesCapacity - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $newEntriesCapacity - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $newEntries - i32.store $0 offset=4 + (func $~lib/map/Map#get:entriesCount (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=20 + ) + (func $~lib/map/Map#get:entries (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 - local.set $oldPtr - local.get $oldPtr + ) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this - i32.load $0 offset=16 - i32.const 12 - i32.mul - i32.add - local.set $oldEnd - local.get $newEntries - local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - local.set $9 - local.get $9 - if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - i32.load $0 offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - i32.load $0 - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/map/MapEntry#set:key - local.get $newEntry - local.get $oldEntry - i32.load $0 offset=4 - call $~lib/map/MapEntry#set:value - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load $0 - call $~lib/map/MapEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store $0 - local.get $newPtr - i32.const 12 - i32.add - local.set $newPtr - end - local.get $oldPtr - i32.const 12 - i32.add - local.set $oldPtr - br $while-continue|0 - end - end - local.get $this - local.get $newBuckets - call $~lib/map/Map#set:buckets - local.get $this - local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask - local.get $this - local.get $newEntries - call $~lib/map/Map#set:entries - local.get $this - local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + local.get $value + i32.store $0 + ) + (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + i32.load $0 offset=4 + ) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this - i32.load $0 offset=20 - call $~lib/map/Map#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $value + i32.store $0 offset=8 ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -3268,7 +3238,7 @@ unreachable end local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left @@ -3351,11 +3321,11 @@ (local $entry i32) (local $val i32) local.get $this - i32.load $0 + call $~lib/map/Map<~lib/string/String,usize>#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map<~lib/string/String,usize>#get:entries local.set $entries i32.const 1 drop @@ -3363,7 +3333,7 @@ local.set $cur local.get $cur local.get $this - i32.load $0 offset=16 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset i32.const 12 i32.mul i32.add @@ -3378,7 +3348,7 @@ local.get $cur local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext i32.const 1 i32.and i32.eqz @@ -3386,7 +3356,7 @@ i32.const 1 drop local.get $entry - i32.load $0 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:key local.set $val i32.const 0 drop @@ -3420,11 +3390,11 @@ (local $entry i32) (local $val i32) local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $cookie call $~lib/rt/itcms/__visit local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.set $entries i32.const 1 drop @@ -3432,7 +3402,7 @@ local.set $cur local.get $cur local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset i32.const 12 i32.mul i32.add @@ -3447,7 +3417,7 @@ local.get $cur local.set $entry local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry#get:taggedNext i32.const 1 i32.and i32.eqz @@ -3457,7 +3427,7 @@ i32.const 1 drop local.get $entry - i32.load $0 offset=4 + call $~lib/map/MapEntry#get:value local.set $val i32.const 0 drop @@ -3537,6 +3507,138 @@ unreachable end ) + (func $~lib/map/Map<~lib/string/String,usize>#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map<~lib/string/String,usize>#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $~lib/map/Map<~lib/string/String,usize>#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $4 i32) @@ -3551,10 +3653,10 @@ i32.const 0 i32.store $0 local.get $this - i32.load $0 + call $~lib/map/Map<~lib/string/String,usize>#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask i32.and i32.const 4 i32.mul @@ -3567,7 +3669,7 @@ local.get $4 if local.get $entry - i32.load $0 offset=8 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3575,7 +3677,7 @@ i32.eqz if (result i32) local.get $entry - i32.load $0 + call $~lib/map/MapEntry<~lib/string/String,usize>#get:key local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 @@ -3613,6 +3715,153 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) + (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) + (local $newBucketsCapacity i32) + (local $newBuckets i32) + (local $newEntriesCapacity i32) + (local $newEntries i32) + (local $oldPtr i32) + (local $oldEnd i32) + (local $newPtr i32) + (local $9 i32) + (local $oldEntry i32) + (local $newEntry i32) + (local $oldEntryKey i32) + (local $newBucketIndex i32) + (local $newBucketPtrBase i32) + (local $15 i32) + 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 $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 offset=8 + local.get $newBucketsMask + i32.const 1 + i32.add + local.set $newBucketsCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newBucketsCapacity + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newBuckets + i32.store $0 + local.get $newBucketsCapacity + i32.const 8 + i32.mul + i32.const 3 + i32.div_s + local.set $newEntriesCapacity + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $newEntriesCapacity + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $newEntries + i32.store $0 offset=4 + local.get $this + call $~lib/map/Map#get:entries + local.set $oldPtr + local.get $oldPtr + local.get $this + call $~lib/map/Map#get:entriesOffset + i32.const 12 + i32.mul + i32.add + local.set $oldEnd + local.get $newEntries + local.set $newPtr + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + local.set $9 + local.get $9 + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $~lib/map/MapEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/map/MapEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/map/MapEntry#set:key + local.get $newEntry + local.get $oldEntry + call $~lib/map/MapEntry#get:value + local.set $15 + global.get $~lib/memory/__stack_pointer + local.get $15 + i32.store $0 offset=8 + local.get $15 + call $~lib/map/MapEntry#set:value + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load $0 + call $~lib/map/MapEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store $0 + local.get $newPtr + i32.const 12 + i32.add + local.set $newPtr + end + local.get $oldPtr + i32.const 12 + i32.add + local.set $oldPtr + br $while-continue|0 + end + end + local.get $this + local.get $newBuckets + call $~lib/map/Map#set:buckets + local.get $this + local.get $newBucketsMask + call $~lib/map/Map#set:bucketsMask + local.get $this + local.get $newEntries + call $~lib/map/Map#set:entries + local.get $this + local.get $newEntriesCapacity + call $~lib/map/Map#set:entriesCapacity + local.get $this + local.get $this + call $~lib/map/Map#get:entriesCount + call $~lib/map/Map#set:entriesOffset + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/symbol/_Symbol.for (type $i32_=>_i32) (param $key i32) (result i32) (local $1 i32) (local $id i32) @@ -4303,118 +4552,6 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/map/Map<~lib/string/String,usize>#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,usize>#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,usize>#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map<~lib/string/String,usize>#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) @@ -4447,16 +4584,16 @@ drop else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -4464,10 +4601,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -4477,13 +4614,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map<~lib/string/String,usize>#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -4509,15 +4646,15 @@ drop local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount i32.const 1 i32.add call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map<~lib/string/String,usize>#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask i32.and i32.const 4 i32.mul @@ -4575,16 +4712,16 @@ call $~lib/rt/itcms/__link else local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.eq if local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount local.get $this - i32.load $0 offset=12 + call $~lib/map/Map#get:entriesCapacity i32.const 3 i32.mul i32.const 4 @@ -4592,10 +4729,10 @@ i32.lt_s if (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask else local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.const 1 i32.shl i32.const 1 @@ -4605,13 +4742,13 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=8 + call $~lib/map/Map#get:entries local.tee $entries i32.store $0 local.get $entries local.get $this local.get $this - i32.load $0 offset=16 + call $~lib/map/Map#get:entriesOffset local.tee $6 i32.const 1 i32.add @@ -4637,15 +4774,15 @@ call $~lib/rt/itcms/__link local.get $this local.get $this - i32.load $0 offset=20 + call $~lib/map/Map#get:entriesCount i32.const 1 i32.add call $~lib/map/Map#set:entriesCount local.get $this - i32.load $0 + call $~lib/map/Map#get:buckets local.get $hashCode local.get $this - i32.load $0 offset=4 + call $~lib/map/Map#get:bucketsMask i32.and i32.const 4 i32.mul diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index ab0ebb40ce..686b2ed452 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -2160,7 +2160,7 @@ local.tee $0 i32.add local.set $2 - loop $while-continue|01 + loop $while-continue|04 local.get $0 local.get $2 i32.lt_u @@ -2183,7 +2183,7 @@ i32.const 12 i32.add local.set $0 - br $while-continue|01 + br $while-continue|04 end end local.get $1 @@ -2288,6 +2288,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2341,7 +2342,7 @@ end else global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2350,18 +2351,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -2373,10 +2378,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -2395,13 +2404,13 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2410,18 +2419,22 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + i64.const 0 + i64.store $0 local.get $0 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 - local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 local.get $1 if @@ -2433,10 +2446,14 @@ local.get $0 i32.const 3 i32.store $0 offset=4 - local.get $0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 i32.store $0 offset=8 local.get $1 if @@ -2455,7 +2472,7 @@ i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -2714,7 +2731,7 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString - local.tee $4 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2727,7 +2744,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $4 + local.get $5 i32.load $0 local.get $3 i32.const -1028477379 @@ -2757,8 +2774,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $5 - local.get $4 + local.tee $6 + local.get $5 i32.load $0 offset=4 i32.and i32.const 2 @@ -2778,9 +2795,9 @@ if (result i32) i32.const 0 else + local.get $3 local.get $0 i32.load $0 - local.get $3 i32.eq end br_if $__inlined_func$~lib/map/Map#find @@ -2799,20 +2816,20 @@ local.get $0 i32.const 1056 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link else - local.get $4 + local.get $5 i32.load $0 offset=16 - local.get $4 + local.get $5 i32.load $0 offset=12 i32.eq if - local.get $4 + local.get $5 i32.load $0 offset=20 - local.get $4 + local.get $5 i32.load $0 offset=12 i32.const 3 i32.mul @@ -2820,19 +2837,19 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $5 i32.load $0 offset=4 else - local.get $4 + local.get $5 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2844,14 +2861,17 @@ i64.const 0 i64.store $0 local.get $0 - local.get $6 + i32.const 0 + i32.store $0 offset=8 + local.get $0 + local.get $7 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2859,26 +2879,26 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $9 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=8 local.tee $2 - local.get $4 + local.get $5 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $9 + local.set $10 local.get $1 local.set $0 loop $while-continue|00 local.get $2 - local.get $9 + local.get $10 i32.ne if local.get $2 @@ -2890,16 +2910,20 @@ local.get $0 local.get $2 i32.load $0 - local.tee $10 + local.tee $4 i32.store $0 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.load $0 offset=4 + local.tee $11 + i32.store $0 offset=8 + local.get $0 + local.get $11 i32.store $0 offset=4 local.get $0 + local.get $8 local.get $7 - local.get $6 - local.get $10 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -2908,33 +2932,33 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $4 i32.const 15 i32.shr_u - local.get $10 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $4 i32.const 13 i32.shr_u - local.get $10 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $4 i32.const 16 i32.shr_u - local.get $10 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $10 + local.tee $4 i32.load $0 i32.store $0 offset=8 - local.get $10 + local.get $4 local.get $0 i32.store $0 local.get $0 @@ -2949,48 +2973,48 @@ br $while-continue|00 end end - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.store $0 - local.get $7 + local.get $8 if - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $6 + local.get $5 + local.get $7 i32.store $0 offset=4 - local.get $4 + local.get $5 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $4 + local.get $5 local.get $1 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $8 + local.get $5 + local.get $9 i32.store $0 offset=12 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.load $0 offset=8 local.tee $0 i32.store $0 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.load $0 offset=16 local.tee $1 i32.const 1 @@ -3007,21 +3031,21 @@ local.get $0 i32.const 1056 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 local.get $0 - local.get $4 + local.get $5 i32.load $0 + local.get $6 local.get $5 - local.get $4 i32.load $0 offset=4 i32.and i32.const 2 diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 21a47e983f..26270817bc 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -3,8 +3,8 @@ (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func)) (type $i64_i32_i32_=>_i32 (func_subtype (param i64 i32 i32) (result i32) func)) (type $i64_i64_=>_i32 (func_subtype (param i64 i64) (result i32) func)) @@ -412,14 +412,14 @@ (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -431,9 +431,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -441,7 +445,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -493,7 +497,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -502,11 +506,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -525,7 +533,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -547,7 +555,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -568,6 +576,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -591,12 +607,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -615,7 +631,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -639,7 +655,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -718,36 +734,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -772,7 +804,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -872,10 +904,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -966,7 +998,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1019,7 +1051,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1041,7 +1073,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1049,7 +1081,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1076,7 +1108,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1084,7 +1116,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1099,7 +1131,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1294,7 +1326,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1404,7 +1436,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1658,7 +1690,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1681,7 +1713,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2121,7 +2153,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2298,7 +2330,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2368,7 +2400,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2380,13 +2412,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2430,7 +2462,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2469,14 +2501,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2599,89 +2631,101 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:buffer i32.sub ) - (func $~lib/typedarray/Int8Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 ) + (func $~lib/typedarray/Int8Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + ) (func $~lib/typedarray/Uint8Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength ) (func $~lib/typedarray/Uint8ClampedArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength ) (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) (func $~lib/typedarray/Uint16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) (func $~lib/typedarray/Int32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) (func $~lib/typedarray/Uint32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) (func $~lib/typedarray/Int64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) (func $~lib/typedarray/Uint64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) (func $~lib/typedarray/Float64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) @@ -2726,7 +2770,7 @@ unreachable end local.get $i8a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.mul @@ -2773,7 +2817,7 @@ unreachable end local.get $u8a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul @@ -2820,7 +2864,7 @@ unreachable end local.get $c8a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul @@ -2867,7 +2911,7 @@ unreachable end local.get $i16a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32.mul @@ -2914,7 +2958,7 @@ unreachable end local.get $u16a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32.mul @@ -2961,7 +3005,7 @@ unreachable end local.get $i32a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32.mul @@ -3008,7 +3052,7 @@ unreachable end local.get $u32a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32.mul @@ -3055,7 +3099,7 @@ unreachable end local.get $i64a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32.mul @@ -3102,7 +3146,7 @@ unreachable end local.get $u64a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32.mul @@ -3149,7 +3193,7 @@ unreachable end local.get $f32a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32.mul @@ -3196,7 +3240,7 @@ unreachable end local.get $f64a - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $len global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32.mul @@ -3231,7 +3275,7 @@ (func $~lib/typedarray/Int32Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -3244,7 +3288,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -3255,7 +3299,7 @@ (func $~lib/typedarray/Int32Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -3268,7 +3312,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -3278,7 +3322,7 @@ (func $~lib/typedarray/Float64Array#__set (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -3291,7 +3335,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -4274,7 +4318,7 @@ ) (func $~lib/typedarray/Float64Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float64Array#get:length local.get $comparator @@ -4317,7 +4361,7 @@ (func $~lib/typedarray/Float64Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -4330,7 +4374,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -4340,7 +4384,7 @@ (func $~lib/typedarray/Uint8ClampedArray#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4351,7 +4395,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add local.get $value @@ -4372,7 +4416,7 @@ (func $~lib/typedarray/Uint8ClampedArray#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4383,7 +4427,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 @@ -4391,7 +4435,7 @@ (func $~lib/typedarray/Int8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4402,7 +4446,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add local.get $value @@ -4487,7 +4531,7 @@ ) (func $~lib/typedarray/Int8Array#fill (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int8Array#get:length local.get $value @@ -4511,14 +4555,18 @@ end local.get $buffer ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Int8Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -4529,16 +4577,20 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_s $0 ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 336 @@ -4549,7 +4601,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -4726,7 +4778,7 @@ ) (func $~lib/typedarray/Int32Array#fill (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int32Array#get:length local.get $value @@ -4735,15 +4787,23 @@ call $~lib/util/bytes/FILL local.get $this ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) local.get $index local.get $this - i32.load $0 offset=12 + call $~lib/array/Array#get:length_ i32.ge_u if i32.const 336 @@ -4754,7 +4814,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -4849,7 +4909,7 @@ call $~lib/typedarray/Int32Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $end|7 local.tee $10 @@ -4984,7 +5044,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5025,7 +5085,7 @@ (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -5036,7 +5096,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add local.get $value @@ -5062,7 +5122,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5120,7 +5180,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5161,7 +5221,7 @@ (func $~lib/typedarray/Int16Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -5174,7 +5234,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -5202,7 +5262,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5243,7 +5303,7 @@ (func $~lib/typedarray/Uint16Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -5256,7 +5316,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -5284,7 +5344,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5342,7 +5402,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5383,7 +5443,7 @@ (func $~lib/typedarray/Uint32Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -5396,7 +5456,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -5424,7 +5484,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5465,7 +5525,7 @@ (func $~lib/typedarray/Int64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -5478,7 +5538,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -5506,7 +5566,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5547,7 +5607,7 @@ (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -5560,7 +5620,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -5588,7 +5648,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5629,7 +5689,7 @@ (func $~lib/typedarray/Float32Array#__set (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -5642,7 +5702,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -5670,7 +5730,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5728,7 +5788,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -5769,7 +5829,7 @@ (func $~lib/typedarray/Int8Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $len local.get $index i32.const 0 @@ -5792,7 +5852,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_s $0 @@ -5875,7 +5935,7 @@ (func $~lib/typedarray/Uint8Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $len local.get $index i32.const 0 @@ -5898,7 +5958,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 @@ -5981,7 +6041,7 @@ (func $~lib/typedarray/Uint8ClampedArray#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.set $len local.get $index i32.const 0 @@ -6004,7 +6064,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 @@ -6087,7 +6147,7 @@ (func $~lib/typedarray/Int16Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u local.set $len @@ -6112,7 +6172,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -6197,7 +6257,7 @@ (func $~lib/typedarray/Uint16Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u local.set $len @@ -6222,7 +6282,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -6307,7 +6367,7 @@ (func $~lib/typedarray/Int32Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u local.set $len @@ -6332,7 +6392,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -6417,7 +6477,7 @@ (func $~lib/typedarray/Uint32Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u local.set $len @@ -6442,7 +6502,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -6527,7 +6587,7 @@ (func $~lib/typedarray/Int64Array#at (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u local.set $len @@ -6552,7 +6612,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -6637,7 +6697,7 @@ (func $~lib/typedarray/Uint64Array#at (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u local.set $len @@ -6662,7 +6722,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -6747,7 +6807,7 @@ (func $~lib/typedarray/Float32Array#at (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u local.set $len @@ -6772,7 +6832,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -6857,7 +6917,7 @@ (func $~lib/typedarray/Float64Array#at (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $len i32) local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u local.set $len @@ -6882,7 +6942,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -6983,7 +7043,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int8Array#get:length @@ -7040,7 +7100,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint8Array#get:length @@ -7097,7 +7157,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint8ClampedArray#get:length @@ -7154,7 +7214,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int16Array#get:length @@ -7211,7 +7271,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint16Array#get:length @@ -7268,7 +7328,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int32Array#get:length @@ -7325,7 +7385,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint32Array#get:length @@ -7382,7 +7442,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int64Array#get:length @@ -7439,7 +7499,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint64Array#get:length @@ -7496,7 +7556,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Float32Array#get:length @@ -7553,7 +7613,7 @@ local.get $initialValue local.set $initialValue|5 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Float64Array#get:length @@ -7604,7 +7664,7 @@ (func $~lib/typedarray/Uint8Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.ge_u if i32.const 336 @@ -7615,7 +7675,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 @@ -7633,7 +7693,7 @@ (func $~lib/typedarray/Int16Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -7646,7 +7706,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -7661,7 +7721,7 @@ (func $~lib/typedarray/Uint16Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u i32.ge_u @@ -7674,7 +7734,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl @@ -7694,7 +7754,7 @@ (func $~lib/typedarray/Uint32Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -7707,7 +7767,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -7722,7 +7782,7 @@ (func $~lib/typedarray/Int64Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -7735,7 +7795,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -7750,7 +7810,7 @@ (func $~lib/typedarray/Uint64Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u i32.ge_u @@ -7763,7 +7823,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -7778,7 +7838,7 @@ (func $~lib/typedarray/Float32Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $index local.get $this - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u i32.ge_u @@ -7791,7 +7851,7 @@ unreachable end local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -7809,6 +7869,10 @@ i32.const 2 i32.gt_s ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -7820,7 +7884,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -7837,7 +7901,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -7845,7 +7909,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 @@ -7930,7 +7994,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -7997,7 +8061,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8065,7 +8129,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8132,7 +8196,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8199,7 +8263,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8265,7 +8329,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8329,7 +8393,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8393,7 +8457,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8457,7 +8521,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8521,7 +8585,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8585,7 +8649,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8650,7 +8714,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8717,7 +8781,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8785,7 +8849,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8852,7 +8916,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8919,7 +8983,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -8985,7 +9049,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9049,7 +9113,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9113,7 +9177,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9177,7 +9241,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9241,7 +9305,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9305,7 +9369,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -9369,7 +9433,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int8Array#get:length @@ -9435,7 +9499,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint8Array#get:length @@ -9502,7 +9566,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint8ClampedArray#get:length @@ -9568,7 +9632,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int16Array#get:length @@ -9634,7 +9698,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint16Array#get:length @@ -9699,7 +9763,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int32Array#get:length @@ -9762,7 +9826,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint32Array#get:length @@ -9825,7 +9889,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Int64Array#get:length @@ -9888,7 +9952,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Uint64Array#get:length @@ -9951,7 +10015,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Float32Array#get:length @@ -10014,7 +10078,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array call $~lib/typedarray/Float64Array#get:length @@ -10081,7 +10145,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10153,7 +10217,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10226,7 +10290,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10298,7 +10362,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10370,7 +10434,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10441,7 +10505,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10510,7 +10574,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10579,7 +10643,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10648,7 +10712,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -10968,7 +11032,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11294,7 +11358,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11355,7 +11419,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11402,7 +11466,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11449,7 +11513,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11496,7 +11560,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11543,7 +11607,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11590,7 +11654,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11637,7 +11701,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11684,7 +11748,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11731,7 +11795,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11778,7 +11842,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -11825,7 +11889,7 @@ local.get $fn local.set $fn|3 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i @@ -12032,7 +12096,7 @@ ) (func $~lib/typedarray/Int8Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int8Array#get:length call $~lib/util/bytes/REVERSE @@ -12040,7 +12104,7 @@ ) (func $~lib/typedarray/Uint8Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8Array#get:length call $~lib/util/bytes/REVERSE @@ -12048,7 +12112,7 @@ ) (func $~lib/typedarray/Uint8ClampedArray#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8ClampedArray#get:length call $~lib/util/bytes/REVERSE @@ -12182,7 +12246,7 @@ ) (func $~lib/typedarray/Int16Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int16Array#get:length call $~lib/util/bytes/REVERSE @@ -12190,7 +12254,7 @@ ) (func $~lib/typedarray/Uint16Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint16Array#get:length call $~lib/util/bytes/REVERSE @@ -12272,7 +12336,7 @@ ) (func $~lib/typedarray/Int32Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int32Array#get:length call $~lib/util/bytes/REVERSE @@ -12280,7 +12344,7 @@ ) (func $~lib/typedarray/Uint32Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint32Array#get:length call $~lib/util/bytes/REVERSE @@ -12362,7 +12426,7 @@ ) (func $~lib/typedarray/Int64Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int64Array#get:length call $~lib/util/bytes/REVERSE @@ -12370,7 +12434,7 @@ ) (func $~lib/typedarray/Uint64Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint64Array#get:length call $~lib/util/bytes/REVERSE @@ -12452,7 +12516,7 @@ ) (func $~lib/typedarray/Float32Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float32Array#get:length call $~lib/util/bytes/REVERSE @@ -12534,7 +12598,7 @@ ) (func $~lib/typedarray/Float64Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float64Array#get:length call $~lib/util/bytes/REVERSE @@ -12593,7 +12657,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -12672,7 +12736,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -13262,7 +13326,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -13342,7 +13406,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -13934,7 +13998,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -14014,7 +14078,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -14606,7 +14670,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -14685,7 +14749,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -15275,7 +15339,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -15355,7 +15419,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -15947,7 +16011,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -16025,7 +16089,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -16613,7 +16677,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -16691,7 +16755,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -17279,7 +17343,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -17357,7 +17421,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -17946,7 +18010,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -18024,7 +18088,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -18613,7 +18677,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -18691,7 +18755,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -19280,7 +19344,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -19358,7 +19422,7 @@ end end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -19950,7 +20014,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -20051,7 +20115,7 @@ local.set $index end local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart loop $while-continue|0 local.get $index @@ -20514,11 +20578,15 @@ end end ) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -20654,7 +20722,7 @@ ) (func $~lib/typedarray/Int8Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int8Array#get:length local.get $separator @@ -20881,7 +20949,7 @@ ) (func $~lib/typedarray/Uint8Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8Array#get:length local.get $separator @@ -20889,7 +20957,7 @@ ) (func $~lib/typedarray/Uint8ClampedArray#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8ClampedArray#get:length local.get $separator @@ -21042,7 +21110,7 @@ ) (func $~lib/typedarray/Int16Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int16Array#get:length local.get $separator @@ -21121,7 +21189,7 @@ ) (func $~lib/typedarray/Uint16Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint16Array#get:length local.get $separator @@ -21222,7 +21290,7 @@ ) (func $~lib/typedarray/Int32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int32Array#get:length local.get $separator @@ -21295,7 +21363,7 @@ ) (func $~lib/typedarray/Uint32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint32Array#get:length local.get $separator @@ -21610,7 +21678,7 @@ ) (func $~lib/typedarray/Int64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int64Array#get:length local.get $separator @@ -21715,7 +21783,7 @@ ) (func $~lib/typedarray/Uint64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint64Array#get:length local.get $separator @@ -23104,7 +23172,7 @@ ) (func $~lib/typedarray/Float32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float32Array#get:length local.get $separator @@ -23112,7 +23180,7 @@ ) (func $~lib/typedarray/Float64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float64Array#get:length local.get $separator @@ -23122,7 +23190,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize ) (func $~lib/typedarray/Uint8Array.wrap@varargs (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) block $2of2 @@ -23421,14 +23489,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 2 @@ -23473,24 +23541,32 @@ ) (func $~lib/typedarray/Int8Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_s $0 ) (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl i32.add i32.load8_s $0 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) (local $source|4 i32) @@ -23535,14 +23611,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -23640,14 +23716,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 3 @@ -23691,10 +23767,18 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) (local $source|4 i32) @@ -23739,14 +23823,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -23840,14 +23924,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -23903,14 +23987,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -23993,14 +24077,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -24056,14 +24140,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 2 @@ -24106,20 +24190,28 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Uint8Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 0 i32.shl @@ -24170,14 +24262,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -24275,14 +24367,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 3 @@ -24370,14 +24462,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -24471,14 +24563,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -24534,14 +24626,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -24624,14 +24716,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -24687,14 +24779,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 2 @@ -24758,7 +24850,7 @@ ) (func $~lib/typedarray/Uint8ClampedArray#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.add i32.load8_u $0 @@ -24807,14 +24899,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -24915,14 +25007,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 3 @@ -25032,14 +25124,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -25136,14 +25228,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -25199,14 +25291,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -25312,14 +25404,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.eqz @@ -25424,14 +25516,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 2 @@ -25474,22 +25566,30 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Int16Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl i32.add i32.load16_s $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -25540,14 +25640,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -25645,14 +25745,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 1 i32.const 3 @@ -25740,14 +25840,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -25845,14 +25945,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -25935,14 +26035,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -25998,14 +26098,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26092,14 +26192,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 2 @@ -26142,22 +26242,30 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Uint16Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 1 i32.shl i32.add i32.load16_u $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 1 i32.shl @@ -26208,14 +26316,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26313,14 +26421,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 1 i32.const 3 @@ -26408,14 +26516,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26513,14 +26621,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26603,14 +26711,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -26666,14 +26774,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 1 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26756,14 +26864,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -26777,7 +26885,7 @@ ) (func $~lib/typedarray/Int32Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -26786,7 +26894,7 @@ ) (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -26837,14 +26945,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -26942,14 +27050,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 3 @@ -27037,14 +27145,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -27142,14 +27250,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 0 @@ -27236,14 +27344,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 1 @@ -27330,14 +27438,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 2 i32.const 0 @@ -27420,14 +27528,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -27439,22 +27547,30 @@ i32.shl memory.copy $0 $0 ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Uint32Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl i32.add i32.load $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -27505,14 +27621,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -27610,14 +27726,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 3 @@ -27705,14 +27821,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -27810,14 +27926,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 0 @@ -27904,14 +28020,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 2 i32.const 1 @@ -27998,14 +28114,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 2 i32.const 0 @@ -28092,14 +28208,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 3 i32.const 2 @@ -28143,22 +28259,30 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Int64Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl i32.add i64.load $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -28209,14 +28333,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -28310,14 +28434,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -28373,14 +28497,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -28478,14 +28602,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 3 i32.const 0 @@ -28573,14 +28697,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 3 i32.const 1 @@ -28668,14 +28792,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 3 i32.const 0 @@ -28763,14 +28887,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 3 i32.const 2 @@ -28814,22 +28938,30 @@ end end ) - (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/array/Array#get:length_ + ) (func $~lib/typedarray/Uint64Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl i32.add i64.load $0 ) - (func $~lib/array/Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) + (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/array/Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) + local.get $this + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -28880,14 +29012,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -28981,14 +29113,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -29044,14 +29176,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -29149,14 +29281,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 3 i32.const 0 @@ -29244,14 +29376,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 3 i32.const 1 @@ -29339,14 +29471,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 3 i32.const 0 @@ -29434,14 +29566,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -29487,7 +29619,7 @@ ) (func $~lib/typedarray/Float32Array#__uget (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 2 i32.shl @@ -29496,7 +29628,7 @@ ) (func $~lib/array/Array#__uget (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 2 i32.shl @@ -29543,14 +29675,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.eqz @@ -29606,14 +29738,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -29701,14 +29833,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -29796,14 +29928,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -29891,14 +30023,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 2 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -29986,14 +30118,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -30039,7 +30171,7 @@ ) (func $~lib/typedarray/Float64Array#__uget (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index i32.const 3 i32.shl @@ -30048,7 +30180,7 @@ ) (func $~lib/array/Array#__uget (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) local.get $this - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.get $index i32.const 3 i32.shl @@ -30099,14 +30231,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 3 i32.const 2 @@ -30195,14 +30327,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -30290,14 +30422,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -30385,14 +30517,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -30480,14 +30612,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 3 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/array/Array#get:dataStart local.set $sourceStart i32.const 0 i32.const 1 @@ -30575,14 +30707,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 1 i32.const 0 @@ -30683,14 +30815,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 2 @@ -30798,14 +30930,14 @@ unreachable end local.get $target - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 i32.const 0 i32.shl i32.add local.set $targetStart local.get $source|4 - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $sourceStart i32.const 0 i32.const 2 @@ -31783,7 +31915,7 @@ ) (func $~lib/typedarray/Int8Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int8Array#get:length local.get $comparator @@ -32735,7 +32867,7 @@ ) (func $~lib/typedarray/Uint8Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8Array#get:length local.get $comparator @@ -32778,7 +32910,7 @@ ) (func $~lib/typedarray/Uint8ClampedArray#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint8ClampedArray#get:length local.get $comparator @@ -33744,7 +33876,7 @@ ) (func $~lib/typedarray/Int16Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int16Array#get:length local.get $comparator @@ -34696,7 +34828,7 @@ ) (func $~lib/typedarray/Uint16Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint16Array#get:length local.get $comparator @@ -35662,7 +35794,7 @@ ) (func $~lib/typedarray/Int32Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int32Array#get:length local.get $comparator @@ -36608,7 +36740,7 @@ ) (func $~lib/typedarray/Uint32Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint32Array#get:length local.get $comparator @@ -37558,7 +37690,7 @@ ) (func $~lib/typedarray/Int64Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Int64Array#get:length local.get $comparator @@ -38508,7 +38640,7 @@ ) (func $~lib/typedarray/Uint64Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Uint64Array#get:length local.get $comparator @@ -39458,7 +39590,7 @@ ) (func $~lib/typedarray/Float32Array#sort (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $this call $~lib/typedarray/Float32Array#get:length local.get $comparator @@ -39708,9 +39840,13 @@ local.get $1 call $~lib/arraybuffer/ArrayBufferView~visit ) - (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Cf64%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39719,11 +39855,15 @@ local.get $1 call $~lib/function/Function<%28f64%2Cf64%29=>i32>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39732,11 +39872,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39745,9 +39889,13 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39756,9 +39904,13 @@ local.get $1 call $~lib/function/Function<%28i8%2Ci8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39767,9 +39919,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit ) - (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39778,9 +39934,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Cu8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit ) - (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39789,9 +39949,13 @@ local.get $1 call $~lib/function/Function<%28i16%2Ci16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit ) - (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39800,9 +39964,13 @@ local.get $1 call $~lib/function/Function<%28u16%2Cu16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39811,9 +39979,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit ) - (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39822,9 +39994,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Cu32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit ) - (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39833,9 +40009,13 @@ local.get $1 call $~lib/function/Function<%28i64%2Ci64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit ) - (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39844,9 +40024,13 @@ local.get $1 call $~lib/function/Function<%28u64%2Cu64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit ) - (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39855,9 +40039,13 @@ local.get $1 call $~lib/function/Function<%28f32%2Cf32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit ) - (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39866,9 +40054,13 @@ local.get $1 call $~lib/function/Function<%28f64%2Cf64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39877,9 +40069,13 @@ local.get $1 call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>i8>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39888,9 +40084,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>u8>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39899,9 +40099,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>u8>#__visit ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39910,9 +40114,13 @@ local.get $1 call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>i16>#__visit ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39921,9 +40129,13 @@ local.get $1 call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>u16>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39932,9 +40144,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>i32>#__visit ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39943,9 +40159,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>u32>#__visit ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39954,9 +40174,13 @@ local.get $1 call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>i64>#__visit ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39965,9 +40189,13 @@ local.get $1 call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>u64>#__visit ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39976,9 +40204,13 @@ local.get $1 call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>f32>#__visit ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39987,9 +40219,13 @@ local.get $1 call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>f64>#__visit ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -39998,9 +40234,13 @@ local.get $1 call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40009,9 +40249,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40020,9 +40264,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>bool>#__visit ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40031,9 +40279,13 @@ local.get $1 call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40042,9 +40294,13 @@ local.get $1 call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40053,9 +40309,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40064,9 +40324,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40075,9 +40339,13 @@ local.get $1 call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40086,9 +40354,13 @@ local.get $1 call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40097,9 +40369,13 @@ local.get $1 call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40108,9 +40384,13 @@ local.get $1 call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>bool>#__visit ) - (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40119,9 +40399,13 @@ local.get $1 call $~lib/function/Function<%28i8%2Ci32%2C~lib/typedarray/Int8Array%29=>void>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40130,9 +40414,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8Array%29=>void>#__visit ) - (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40141,9 +40429,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Ci32%2C~lib/typedarray/Uint8ClampedArray%29=>void>#__visit ) - (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40152,9 +40444,13 @@ local.get $1 call $~lib/function/Function<%28i16%2Ci32%2C~lib/typedarray/Int16Array%29=>void>#__visit ) - (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40163,9 +40459,13 @@ local.get $1 call $~lib/function/Function<%28u16%2Ci32%2C~lib/typedarray/Uint16Array%29=>void>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40174,9 +40474,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%2C~lib/typedarray/Int32Array%29=>void>#__visit ) - (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40185,9 +40489,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Ci32%2C~lib/typedarray/Uint32Array%29=>void>#__visit ) - (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40196,9 +40504,13 @@ local.get $1 call $~lib/function/Function<%28i64%2Ci32%2C~lib/typedarray/Int64Array%29=>void>#__visit ) - (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40207,9 +40519,13 @@ local.get $1 call $~lib/function/Function<%28u64%2Ci32%2C~lib/typedarray/Uint64Array%29=>void>#__visit ) - (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40218,9 +40534,13 @@ local.get $1 call $~lib/function/Function<%28f32%2Ci32%2C~lib/typedarray/Float32Array%29=>void>#__visit ) - (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40229,11 +40549,15 @@ local.get $1 call $~lib/function/Function<%28f64%2Ci32%2C~lib/typedarray/Float64Array%29=>void>#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40242,11 +40566,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40255,11 +40583,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40268,11 +40600,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40281,11 +40617,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40294,11 +40634,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40307,11 +40651,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40320,11 +40668,15 @@ local.get $1 call $~lib/array/Array#__visit ) + (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) i32.const 0 drop local.get $this - i32.load $0 + call $~lib/array/Array#get:buffer local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40333,9 +40685,13 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/function/Function<%28i8%2Ci8%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i8%2Ci8%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i8%2Ci8%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i8%2Ci8%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40344,9 +40700,13 @@ local.get $1 call $~lib/function/Function<%28i8%2Ci8%29=>i32>#__visit ) - (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u8%2Cu8%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40355,9 +40715,13 @@ local.get $1 call $~lib/function/Function<%28u8%2Cu8%29=>i32>#__visit ) - (func $~lib/function/Function<%28i16%2Ci16%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i16%2Ci16%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i16%2Ci16%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i16%2Ci16%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40366,9 +40730,13 @@ local.get $1 call $~lib/function/Function<%28i16%2Ci16%29=>i32>#__visit ) - (func $~lib/function/Function<%28u16%2Cu16%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u16%2Cu16%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u16%2Cu16%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u16%2Cu16%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40377,9 +40745,13 @@ local.get $1 call $~lib/function/Function<%28u16%2Cu16%29=>i32>#__visit ) - (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40388,9 +40760,13 @@ local.get $1 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#__visit ) - (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u32%2Cu32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40399,9 +40775,13 @@ local.get $1 call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit ) - (func $~lib/function/Function<%28i64%2Ci64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28i64%2Ci64%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28i64%2Ci64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28i64%2Ci64%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40410,9 +40790,13 @@ local.get $1 call $~lib/function/Function<%28i64%2Ci64%29=>i32>#__visit ) - (func $~lib/function/Function<%28u64%2Cu64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28u64%2Cu64%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28u64%2Cu64%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28u64%2Cu64%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -40421,9 +40805,13 @@ local.get $1 call $~lib/function/Function<%28u64%2Cu64%29=>i32>#__visit ) - (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28f32%2Cf32%29=>i32>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) @@ -53087,7 +53475,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53098,7 +53486,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53210,7 +53598,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53221,7 +53609,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53335,7 +53723,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53346,7 +53734,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53461,7 +53849,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53472,7 +53860,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53590,7 +53978,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53601,7 +53989,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53719,7 +54107,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53730,7 +54118,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53850,7 +54238,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53861,7 +54249,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -53984,7 +54372,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -53995,7 +54383,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -54120,7 +54508,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -54131,7 +54519,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -54258,7 +54646,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -54269,7 +54657,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -54398,7 +54786,7 @@ end global.get $~lib/memory/__stack_pointer local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 @@ -54409,7 +54797,7 @@ local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $buffer @@ -59451,7 +59839,7 @@ unreachable end local.get $0 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 i32.mul @@ -59543,7 +59931,7 @@ unreachable end local.get $0 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.const 4 i32.mul @@ -59645,7 +60033,7 @@ unreachable end local.get $1 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.const 8 i32.mul @@ -59967,7 +60355,7 @@ unreachable end local.get $14 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq i32.eqz @@ -60224,7 +60612,7 @@ unreachable end local.get $30 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 i32.mul @@ -60358,7 +60746,7 @@ unreachable end local.get $36 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 5 i32.eq i32.eqz @@ -60418,7 +60806,7 @@ unreachable end local.get $37 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq i32.eqz @@ -60478,7 +60866,7 @@ unreachable end local.get $38 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq i32.eqz @@ -61020,7 +61408,7 @@ unreachable end local.get $66 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 12 i32.eq i32.eqz @@ -61094,7 +61482,7 @@ unreachable end local.get $67 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 8 i32.eq i32.eqz @@ -61154,7 +61542,7 @@ unreachable end local.get $68 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq i32.eqz @@ -61214,9 +61602,9 @@ unreachable end local.get $69 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength local.get $65 - i32.load $0 offset=8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.eq i32.eqz if @@ -62258,7 +62646,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -62269,7 +62657,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 2 i32.shl @@ -62391,7 +62779,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -62402,7 +62790,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 3 i32.shl @@ -62620,7 +63008,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -62631,7 +63019,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 0 i32.shl @@ -62754,9 +63142,9 @@ local.tee $slice i32.store $0 local.get $slice - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $start i32.const 2 i32.shl @@ -62800,7 +63188,7 @@ call $~lib/typedarray/Int8Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 0 @@ -62901,7 +63289,7 @@ call $~lib/typedarray/Uint8Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 0 @@ -63002,7 +63390,7 @@ call $~lib/typedarray/Uint8ClampedArray#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 0 @@ -63103,7 +63491,7 @@ call $~lib/typedarray/Int16Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 1 @@ -63204,7 +63592,7 @@ call $~lib/typedarray/Uint16Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 1 @@ -63305,7 +63693,7 @@ call $~lib/typedarray/Int32Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 2 @@ -63406,7 +63794,7 @@ call $~lib/typedarray/Uint32Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 2 @@ -63507,7 +63895,7 @@ call $~lib/typedarray/Int64Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 3 @@ -63608,7 +63996,7 @@ call $~lib/typedarray/Uint64Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 3 @@ -63709,7 +64097,7 @@ call $~lib/typedarray/Float32Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 2 @@ -63810,7 +64198,7 @@ call $~lib/typedarray/Float64Array#get:length local.set $len local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len i32.const 3 @@ -63929,7 +64317,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64052,7 +64440,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64175,7 +64563,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64298,7 +64686,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64421,7 +64809,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64544,7 +64932,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64667,7 +65055,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64790,7 +65178,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -64913,7 +65301,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -65036,7 +65424,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -65159,7 +65547,7 @@ local.tee $buf i32.store $0 offset=4 local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart i32.const 0 local.set $j @@ -65338,7 +65726,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -65349,7 +65737,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 0 i32.shl @@ -65471,7 +65859,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -65482,7 +65870,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin i32.const 0 i32.shl @@ -65604,7 +65992,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -65615,7 +66003,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 1 i32.shl @@ -65737,7 +66125,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -65748,7 +66136,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 1 i32.shl @@ -65870,7 +66258,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -65881,7 +66269,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 2 i32.shl @@ -66003,7 +66391,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -66014,7 +66402,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 3 i32.shl @@ -66136,7 +66524,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -66147,7 +66535,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 3 i32.shl @@ -66269,7 +66657,7 @@ local.tee $out i32.store $0 local.get $array - i32.load $0 + call $~lib/arraybuffer/ArrayBufferView#get:buffer local.set $buf local.get $out local.get $buf @@ -66280,7 +66668,7 @@ call $~lib/rt/itcms/__link local.get $out local.get $array - i32.load $0 offset=4 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $begin|4 i32.const 2 i32.shl diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 2a38420551..38eb728962 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -35091,23 +35091,33 @@ (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $folding-inner3 block $folding-inner2 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $invalid + block $folding-inner1 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $invalid + end + return end return end - return + unreachable end - unreachable + local.get $0 + i32.load $0 offset=4 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end local.get $0 - i32.load $0 offset=4 + i32.load $0 local.tee $0 if local.get $0 @@ -38113,10 +38123,18 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#toString (type $i32_=>_i32) (param $0 i32) (result i32) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (type $none_=>_none) + (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 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38133,496 +38151,272 @@ global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 - i32.store $0 + i32.const 20 + memory.fill $0 local.get $1 - i32.const 9584 + i32.const 7616 i32.store $0 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 7628 + i32.load $0 + local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store $0 offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $0 + local.set $0 + local.get $2 + i32.load $0 offset=4 + local.set $4 + local.get $2 i32.load $0 offset=8 - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load $0 + local.set $8 + local.get $7 + local.get $4 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load $0 + i32.store $0 + local.get $7 + local.get $8 + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end end - loop $for-loop|0 - local.get $2 - local.get $3 + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 i32.lt_s if - local.get $0 - i32.load $0 offset=4 local.get $2 - i32.add - i32.load8_s $0 - local.tee $4 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.const 7616 local.get $1 - i32.load $0 offset=4 - local.get $2 - i32.add - i32.load8_s $0 - local.tee $5 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 11344 - i32.store $0 - i32.const 11344 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 i32.const 1568 - i32.const 764 - i32.const 7 + i32.const 570 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $2 + i32.load $0 offset=4 + local.set $3 + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u if - i32.const 49424 - i32.const 49472 + local.get $4 i32.const 1 + i32.shr_u + local.set $5 + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store $0 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 - i32.store $0 offset=4 - local.get $7 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 11312 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - local.get $4 - i32.load $0 offset=8 - i32.const 11100 - i32.load $0 - local.tee $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 3 - i32.add - local.set $5 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 + i32.sub + local.set $4 + loop $while-continue|01 local.get $0 - local.get $8 - i32.lt_s + local.get $5 + i32.lt_u if - local.get $0 - local.get $5 - i32.add - local.get $9 + local.get $3 local.get $0 i32.const 2 i32.shl i32.add - f32.load $0 - local.tee $2 - i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 11392 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 11424 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - local.get $4 - i32.load $0 offset=8 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 2 - i32.add - local.set $6 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $0 + local.tee $6 + i32.load $0 + local.set $7 local.get $6 - i32.add - local.get $8 + local.get $3 + local.get $4 local.get $0 - i32.const 3 + i32.sub + i32.const 2 i32.shl i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 $0 + local.tee $6 + i32.load $0 + i32.store $0 + local.get $6 + local.get $7 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $while-continue|01 end end - i32.const 10 + end + local.get $1 + local.get $2 + i32.store $0 offset=16 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + if i32.const 0 - i32.const 15 - i32.const 11456 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + if i32.const 0 - i32.const 15 - i32.const 11488 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - local.tee $3 - local.get $1 - i32.load $0 offset=12 + local.get $2 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 578 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - i32.load $0 offset=4 - local.get $2 - i32.add - i32.load8_u $0 - local.tee $4 - local.get $1 - i32.load $0 offset=4 - local.get $2 - i32.add - i32.load8_u $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11552 - i32.store $0 - i32.const 11552 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (type $none_=>_none) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -38644,363 +38438,268 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 + i32.const 7616 i32.store $0 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.get $1 + i32.const 7628 + i32.load $0 + local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store $0 offset=4 - local.get $7 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store $0 offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 + local.set $0 + local.get $2 + i32.load $0 offset=4 + local.set $4 + local.get $2 + i32.load $0 offset=8 i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11520 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - local.get $4 - i32.load $0 offset=8 - i32.const 11100 - i32.load $0 - local.tee $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 3 - i32.add + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub local.set $5 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 + loop $while-continue|0 local.get $0 - local.get $8 - i32.lt_s + local.get $6 + i32.lt_u if + local.get $4 local.get $0 - local.get $5 + i32.const 2 + i32.shl i32.add - local.get $9 + local.tee $7 + i32.load $0 + local.set $8 + local.get $7 + local.get $4 + local.get $5 local.get $0 + i32.sub i32.const 2 i32.shl i32.add - f32.load $0 - local.tee $2 - i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 $0 + local.tee $7 + i32.load $0 + i32.store $0 + local.get $7 + local.get $8 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11600 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11632 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - local.get $4 - i32.load $0 offset=8 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add + local.get $1 i32.lt_s - br_if $folding-inner0 + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $2 + i32.load $0 offset=4 + local.set $3 + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if local.get $4 - i32.load $0 offset=4 - i32.const 2 - i32.add - local.set $6 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|03 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|01 local.get $0 local.get $5 - i32.lt_s + i32.lt_u if + local.get $3 local.get $0 - local.get $6 + i32.const 2 + i32.shl i32.add - local.get $8 + local.tee $6 + i32.load $0 + local.set $7 + local.get $6 + local.get $3 + local.get $4 local.get $0 - i32.const 3 + i32.sub + i32.const 2 i32.shl i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 $0 + local.tee $6 + i32.load $0 + i32.store $0 + local.get $6 + local.get $7 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $while-continue|01 end end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11664 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11696 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $1 + local.get $2 + i32.store $0 offset=16 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - local.tee $3 - local.get $1 - i32.load $0 offset=12 + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - i32.load $0 offset=4 - local.get $2 - i32.add - i32.load8_u $0 - local.tee $4 - local.get $1 - i32.load $0 offset=4 - local.get $2 - i32.add - i32.load8_u $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11760 - i32.store $0 - i32.const 11760 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (type $none_=>_none) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (type $none_=>_none) (local $0 i32) - (local $1 f32) - (local $2 f64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39017,480 +38716,276 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.get $2 + i32.const 7616 i32.store $0 - local.get $4 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $4 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $4 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.get $2 + i32.const 7628 + i32.load $0 + local.tee $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $5 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.get $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 offset=8 - local.get $6 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $6 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $5 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $6 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $6 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11020 - i32.load $0 - local.tee $8 - local.get $7 - i32.load $0 offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - local.set $9 - i32.const 11012 - i32.load $0 - local.set $10 - loop $for-loop|0 + i32.gt_u + if + local.get $6 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 local.get $0 - local.get $8 - i32.lt_s + local.get $7 + i32.lt_u if + local.get $5 local.get $0 - local.get $9 + i32.const 3 + i32.shl i32.add - i32.const 255 - local.get $10 + local.tee $8 + i64.load $0 + local.set $1 + local.get $8 + local.get $5 + local.get $6 local.get $0 - i32.const 2 + i32.sub + i32.const 3 i32.shl i32.add - i32.load $0 - local.tee $3 - i32.sub - i32.const 31 - i32.shr_s - local.get $3 - i32.or - local.get $3 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 $0 + local.tee $8 + i64.load $0 + i64.store $0 + local.get $8 + local.get $1 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11728 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 - i32.const 11100 - i32.load $0 - local.tee $3 - i32.const 3 - i32.add + local.get $2 i32.lt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - i32.const 3 - i32.add - local.set $8 - i32.const 11092 - i32.load $0 - local.set $9 - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 + if local.get $3 - i32.lt_s + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne if - local.get $0 - local.get $8 - i32.add - local.get $9 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.tee $1 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u i32.const 0 - local.get $1 - local.get $1 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11824 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 - local.get $4 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11856 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 - i32.const 11196 - i32.load $0 - local.tee $3 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - i32.const 2 - i32.add - local.set $4 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|08 + end + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $4 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $4 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 local.get $0 - local.get $3 - i32.lt_s + local.get $6 + i32.lt_u if - local.get $0 local.get $4 - i32.add - local.get $8 local.get $0 i32.const 3 i32.shl i32.add - f64.load $0 - local.tee $2 - f64.const 255 - f64.min - f64.const 0 - f64.max - i32.trunc_sat_f64_u - i32.const 0 - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|08 - end - end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11888 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 - local.get $5 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $7 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 - i32.const 11276 - i32.load $0 - local.tee $3 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - i32.const 7 - i32.add - local.set $4 - i32.const 11268 - i32.load $0 - local.set $5 - i32.const 0 - local.set $0 - loop $for-loop|013 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 + local.tee $7 + i64.load $0 + local.set $1 + local.get $7 local.get $4 - i32.add - i32.const 255 - local.get $0 local.get $5 - i32.add - i32.load8_s $0 - local.tee $6 + local.get $0 i32.sub - i32.const 31 - i32.shr_s - local.get $6 - i32.or - local.get $6 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 $0 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i64.load $0 + i64.store $0 + local.get $7 + local.get $1 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|013 + br $while-continue|01 end end - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11920 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + local.get $3 + i32.store $0 offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 + local.get $3 i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.shl - local.tee $5 - local.get $0 - i32.load $0 offset=4 - i32.add - i32.load16_s $0 - local.tee $4 - local.get $1 - i32.load $0 offset=4 - local.get $5 - i32.add - i32.load16_s $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12000 - i32.store $0 - i32.const 12000 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $3 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (type $none_=>_none) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $1 i64) + (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 20 i32.sub @@ -39507,380 +39002,276 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.get $2 + i32.const 7616 i32.store $0 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.get $2 + i32.const 7628 + i32.load $0 + local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store $0 offset=4 - local.get $7 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.get $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 i32.store $0 offset=8 - local.get $1 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 11952 - call $~lib/rt/__newArray + local.set $0 + local.get $3 + i32.load $0 offset=4 local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $8 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 6 - i32.add - local.set $5 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 local.get $0 - local.get $8 - i32.lt_s + local.get $7 + i32.lt_u if local.get $5 local.get $0 - i32.const 1 + i32.const 3 i32.shl i32.add - local.get $9 + local.tee $8 + i64.load $0 + local.set $1 + local.get $8 + local.get $5 + local.get $6 local.get $0 - i32.const 2 + i32.sub + i32.const 3 i32.shl i32.add - f32.load $0 - local.tee $2 - i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 $0 + local.tee $8 + i64.load $0 + i64.store $0 + local.get $8 + local.get $1 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 12048 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 12096 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $4 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $4 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 4 - i32.add local.set $6 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|03 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 local.get $0 - local.get $5 - i32.lt_s + local.get $6 + i32.lt_u if - local.get $6 + local.get $4 local.get $0 - i32.const 1 + i32.const 3 i32.shl i32.add - local.get $8 + local.tee $7 + i64.load $0 + local.set $1 + local.get $7 + local.get $4 + local.get $5 local.get $0 + i32.sub i32.const 3 i32.shl i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 $0 + local.tee $7 + i64.load $0 + i64.store $0 + local.get $7 + local.get $1 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $while-continue|01 end end - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 12144 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 12192 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + local.get $3 + i32.store $0 offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 + local.get $3 i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.shl - local.tee $5 - local.get $0 - i32.load $0 offset=4 - i32.add - i32.load16_u $0 - local.tee $4 - local.get $1 - i32.load $0 offset=4 - local.get $5 - i32.add - i32.load16_u $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store $0 - i32.const 12288 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $3 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (type $none_=>_none) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $1 f32) + (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 20 i32.sub @@ -39897,381 +39288,276 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.get $2 + i32.const 7616 i32.store $0 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.get $2 + i32.const 7628 + i32.load $0 + local.tee $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store $0 offset=4 - local.get $7 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.get $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 i32.store $0 offset=8 - local.get $1 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $5 + local.get $3 + i32.load $0 offset=8 i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 + i32.shr_u + local.tee $6 i32.const 1 - i32.const 65 - i32.const 12240 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $8 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 + i32.gt_u + if + local.get $6 i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 6 - i32.add - local.set $5 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u if local.get $5 local.get $0 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $9 + local.tee $8 + f32.load $0 + local.set $1 + local.get $8 + local.get $5 + local.get $6 local.get $0 + i32.sub i32.const 2 i32.shl i32.add + local.tee $8 f32.load $0 - local.tee $2 - i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 $0 + f32.store $0 + local.get $8 + local.get $1 + f32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12336 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12384 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $4 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $4 + local.get $3 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 4 - i32.add local.set $6 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|03 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 local.get $0 - local.get $5 - i32.lt_s + local.get $6 + i32.lt_u if - local.get $6 + local.get $4 local.get $0 - i32.const 1 + i32.const 2 i32.shl i32.add - local.get $8 + local.tee $7 + f32.load $0 + local.set $1 + local.get $7 + local.get $4 + local.get $5 local.get $0 - i32.const 3 + i32.sub + i32.const 2 i32.shl i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 $0 + local.tee $7 + f32.load $0 + f32.store $0 + local.get $7 + local.get $1 + f32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $while-continue|01 end end - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12432 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12480 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + local.get $3 + i32.store $0 offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne + local.get $3 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - local.get $0 - i32.load $0 offset=4 - i32.add - i32.load $0 - local.tee $4 - local.get $1 - i32.load $0 offset=4 - local.get $5 - i32.add - i32.load $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 12592 - i32.store $0 - i32.const 12592 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $3 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (type $none_=>_none) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $1 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40288,349 +39574,367 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.get $2 + i32.const 7616 i32.store $0 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.get $2 + i32.const 7628 + i32.load $0 + local.tee $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store $0 offset=4 - local.get $8 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int32Array#constructor + local.get $2 + call $~lib/typedarray/Float64Array#constructor local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - i32.const 11008 + i32.store $0 offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12528 - call $~lib/rt/__newArray + local.set $0 + local.get $3 + i32.load $0 offset=4 local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $5 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $6 + i32.const 1 + i32.gt_u + if + local.get $6 + i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 12 - i32.add - local.set $9 - i32.const 11092 - i32.load $0 - local.set $10 - loop $for-loop|0 + local.set $7 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|0 local.get $0 - local.get $5 - i32.lt_s + local.get $7 + i32.lt_u if - local.get $10 + local.get $5 local.get $0 - i32.const 2 + i32.const 3 i32.shl - local.tee $6 i32.add - f32.load $0 - local.set $2 + local.tee $8 + f64.load $0 + local.set $1 + local.get $8 + local.get $5 local.get $6 - local.get $9 - i32.add - local.get $2 - i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store $0 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $8 + f64.load $0 + f64.store $0 + local.get $8 + local.get $1 + f64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12640 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12704 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $4 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $3 + i32.load $0 offset=4 + local.set $4 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 8 - i32.add local.set $6 - i32.const 11188 - i32.load $0 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|03 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 local.get $0 - local.get $5 - i32.lt_s + local.get $6 + i32.lt_u if - local.get $6 + local.get $4 local.get $0 - i32.const 2 + i32.const 3 i32.shl i32.add + local.tee $7 + f64.load $0 + local.set $1 local.get $7 + local.get $4 + local.get $5 local.get $0 + i32.sub i32.const 3 i32.shl i32.add + local.tee $7 f64.load $0 - local.tee $3 - i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store $0 + f64.store $0 + local.get $7 + local.get $1 + f64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $while-continue|01 end end - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12768 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12832 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s + local.get $2 + local.get $3 + i32.store $0 offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne if - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 + local.get $3 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.const 2 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 + local.get $3 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#toString (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 9584 + i32.store $0 + local.get $0 + call $~lib/typedarray/Uint8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if local.get $2 - i32.const 2 - i32.shl - local.tee $5 local.get $0 i32.load $0 offset=4 i32.add - i32.load $0 + i32.load8_s $0 local.tee $4 + local.get $2 local.get $1 i32.load $0 offset=4 - local.get $5 i32.add - i32.load $0 + i32.load8_s $0 local.tee $5 i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 12960 + i32.const 11344 i32.store $0 - i32.const 12960 + i32.const 11344 i32.const 3 local.get $2 f64.convert_i32_s local.get $4 - f64.convert_i32_u + f64.convert_i32_s local.get $5 - f64.convert_i32_u + f64.convert_i32_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -40653,7 +39957,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 f32) @@ -40664,7 +39968,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40688,38 +39991,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $6 i32.store $0 - local.get $7 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store $0 offset=4 - local.get $8 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -40742,20 +40045,18 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 - i32.const 2 - i32.const 66 - i32.const 12896 + i32.const 0 + i32.const 15 + i32.const 11312 call $~lib/rt/__newArray local.set $5 global.get $~lib/memory/__stack_pointer @@ -40763,48 +40064,44 @@ i32.store $0 offset=16 local.get $4 local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 + local.get $4 + i32.load $0 offset=8 i32.const 11100 i32.load $0 - local.tee $5 + local.tee $8 i32.const 3 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 12 + i32.const 3 i32.add - local.set $9 + local.set $5 i32.const 11092 i32.load $0 - local.set $10 + local.set $9 loop $for-loop|0 local.get $0 - local.get $5 + local.get $8 i32.lt_s if - local.get $10 + local.get $0 + local.get $5 + i32.add + local.get $9 local.get $0 i32.const 2 i32.shl - local.tee $6 i32.add f32.load $0 - local.set $2 - local.get $6 - local.get $9 - i32.add - local.get $2 - i32.trunc_sat_f32_u + local.tee $2 + i32.trunc_sat_f32_s i32.const 0 local.get $2 local.get $2 @@ -40812,7 +40109,7 @@ f32.const 0 f32.eq select - i32.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add @@ -40821,9 +40118,9 @@ end end i32.const 10 - i32.const 2 - i32.const 66 - i32.const 13008 + i32.const 0 + i32.const 15 + i32.const 11392 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40831,14 +40128,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 2 - i32.const 66 - i32.const 13072 + i32.const 0 + i32.const 15 + i32.const 11424 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40846,49 +40143,45 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 + local.get $4 + i32.load $0 offset=8 i32.const 11196 i32.load $0 local.tee $5 i32.const 2 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 8 + i32.const 2 i32.add local.set $6 i32.const 11188 i32.load $0 - local.set $7 + local.set $8 i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|07 local.get $0 local.get $5 i32.lt_s if - local.get $6 local.get $0 - i32.const 2 - i32.shl + local.get $6 i32.add - local.get $7 + local.get $8 local.get $0 i32.const 3 i32.shl i32.add f64.load $0 local.tee $3 - i32.trunc_sat_f64_u + i32.trunc_sat_f64_s i32.const 0 local.get $3 local.get $3 @@ -40896,18 +40189,18 @@ f64.const 0 f64.eq select - i32.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|07 end end i32.const 10 - i32.const 2 - i32.const 66 - i32.const 13136 + i32.const 0 + i32.const 15 + i32.const 11456 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40915,22 +40208,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 - i32.const 2 - i32.const 66 - i32.const 13200 + i32.const 0 + i32.const 15 + i32.const 11488 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40938,7 +40231,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -40952,12 +40245,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i64) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -40978,8 +40270,6 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 3 - i32.shr_u local.tee $3 local.get $1 i32.load $0 offset=12 @@ -40998,33 +40288,30 @@ i32.lt_s if local.get $2 - i32.const 3 - i32.shl - local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i64.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=4 - local.get $4 + i32.load8_u $0 + local.tee $4 + local.get $2 + local.get $1 + i32.load $0 offset=4 i32.add - i64.load $0 - local.tee $6 - i64.ne + i32.load8_u $0 + local.tee $5 + i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 13376 + i32.const 11552 i32.store $0 - i32.const 13376 + i32.const 11552 i32.const 3 local.get $2 f64.convert_i32_s + local.get $4 + f64.convert_i32_u local.get $5 - f64.convert_i64_s - local.get $6 - f64.convert_i64_s + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41047,11 +40334,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f64) - (local $3 f32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -41081,38 +40368,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $6 i32.store $0 - local.get $5 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $7 i32.store $0 offset=4 - local.get $6 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -41135,58 +40422,54 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13264 + i32.const 0 + i32.const 63 + i32.const 11520 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store $0 offset=16 local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 + local.get $4 + i32.load $0 offset=8 i32.const 11100 i32.load $0 - local.tee $7 + local.tee $8 i32.const 3 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 24 + i32.const 3 i32.add - local.set $8 + local.set $5 i32.const 11092 i32.load $0 local.set $9 loop $for-loop|0 local.get $0 - local.get $7 + local.get $8 i32.lt_s if - local.get $8 local.get $0 - i32.const 3 - i32.shl + local.get $5 i32.add local.get $9 local.get $0 @@ -41194,16 +40477,16 @@ i32.shl i32.add f32.load $0 - local.tee $3 - i64.trunc_sat_f32_s - i64.const 0 - local.get $3 - local.get $3 + local.tee $2 + i32.trunc_sat_f32_u + i32.const 0 + local.get $2 + local.get $2 f32.sub f32.const 0 f32.eq select - i64.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add @@ -41212,9 +40495,9 @@ end end i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13424 + i32.const 0 + i32.const 63 + i32.const 11600 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41222,14 +40505,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13536 + i32.const 0 + i32.const 63 + i32.const 11632 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41237,68 +40520,64 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 + local.get $4 + i32.load $0 offset=8 i32.const 11196 i32.load $0 local.tee $5 i32.const 2 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 16 + i32.const 2 i32.add - local.set $7 + local.set $6 i32.const 11188 i32.load $0 local.set $8 i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|07 local.get $0 local.get $5 i32.lt_s if + local.get $0 + local.get $6 + i32.add local.get $8 local.get $0 i32.const 3 i32.shl - local.tee $9 i32.add f64.load $0 - local.set $2 - local.get $7 - local.get $9 - i32.add - local.get $2 - i64.trunc_sat_f64_s - i64.const 0 - local.get $2 - local.get $2 + local.tee $3 + i32.trunc_sat_f64_u + i32.const 0 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.eq select - i64.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|07 end end i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13648 + i32.const 0 + i32.const 63 + i32.const 11664 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41306,22 +40585,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $4 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13760 + i32.const 0 + i32.const 63 + i32.const 11696 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41329,7 +40608,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -41343,12 +40622,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i64) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41369,8 +40647,6 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 3 - i32.shr_u local.tee $3 local.get $1 i32.load $0 offset=12 @@ -41389,33 +40665,30 @@ i32.lt_s if local.get $2 - i32.const 3 - i32.shl - local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i64.load $0 - local.tee $5 + i32.load8_u $0 + local.tee $4 + local.get $2 local.get $1 i32.load $0 offset=4 - local.get $4 i32.add - i64.load $0 - local.tee $6 - i64.ne + i32.load8_u $0 + local.tee $5 + i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 13984 + i32.const 11760 i32.store $0 - i32.const 13984 + i32.const 11760 i32.const 3 local.get $2 f64.convert_i32_s + local.get $4 + f64.convert_i32_u local.get $5 - f64.convert_i64_u - local.get $6 - f64.convert_i64_u + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41438,17 +40711,18 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (type $none_=>_none) (local $0 i32) - (local $1 i32) + (local $1 f32) (local $2 f64) - (local $3 f32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41465,119 +40739,163 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $3 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $5 i32.store $0 offset=4 - local.get $6 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $6 i32.store $0 offset=8 - local.get $1 + local.get $6 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $6 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $6 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $7 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=16 - local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 block $folding-inner0 + i32.const 11020 + i32.load $0 + local.tee $8 + local.get $7 + i32.load $0 offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + local.set $9 + i32.const 11012 + i32.load $0 + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $9 + i32.add + i32.const 255 + local.get $10 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $3 + i32.sub + i32.const 31 + i32.shr_s + local.get $3 + i32.or + local.get $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + local.get $7 + i32.load $0 offset=8 i32.const 11100 i32.load $0 - local.tee $7 + local.tee $3 i32.const 3 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 - local.get $4 + local.get $7 i32.load $0 offset=4 - i32.const 24 + i32.const 3 i32.add local.set $8 i32.const 11092 i32.load $0 local.set $9 - loop $for-loop|0 + i32.const 0 + local.set $0 + loop $for-loop|07 local.get $0 - local.get $7 + local.get $3 i32.lt_s if - local.get $8 local.get $0 - i32.const 3 - i32.shl + local.get $8 i32.add local.get $9 local.get $0 @@ -41585,142 +40903,198 @@ i32.shl i32.add f32.load $0 - local.tee $3 - i64.trunc_sat_f32_u - i64.const 0 - local.get $3 - local.get $3 + local.tee $1 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + i32.const 0 + local.get $1 + local.get $1 f32.sub f32.const 0 f32.eq select - i64.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $for-loop|07 end end i32.const 10 - i32.const 3 - i32.const 68 - i32.const 14032 + i32.const 0 + i32.const 63 + i32.const 11824 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $7 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 3 - i32.const 68 - i32.const 14144 + i32.const 0 + i32.const 63 + i32.const 11856 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $7 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 + local.get $7 + i32.load $0 offset=8 i32.const 11196 i32.load $0 - local.tee $5 + local.tee $3 i32.const 2 i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s + i32.lt_s br_if $folding-inner0 - local.get $4 + local.get $7 i32.load $0 offset=4 - i32.const 16 + i32.const 2 i32.add - local.set $7 + local.set $4 i32.const 11188 i32.load $0 local.set $8 i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|016 local.get $0 - local.get $5 + local.get $3 i32.lt_s if + local.get $0 + local.get $4 + i32.add local.get $8 local.get $0 i32.const 3 i32.shl - local.tee $9 i32.add f64.load $0 - local.set $2 - local.get $7 - local.get $9 - i32.add - local.get $2 - i64.trunc_sat_f64_u - i64.const 0 + local.tee $2 + f64.const 255 + f64.min + f64.const 0 + f64.max + i32.trunc_sat_f64_u + i32.const 0 local.get $2 local.get $2 f64.sub f64.const 0 f64.eq select - i64.store $0 + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|016 end end i32.const 10 - i32.const 3 - i32.const 68 - i32.const 14256 + i32.const 0 + i32.const 63 + i32.const 11888 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $7 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $7 local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $7 + i32.load $0 offset=8 + i32.const 11276 + i32.load $0 + local.tee $3 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + i32.const 7 + i32.add + local.set $4 + i32.const 11268 + i32.load $0 + local.set $5 + i32.const 0 + local.set $0 + loop $for-loop|025 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $4 + i32.add + i32.const 255 + local.get $0 + local.get $5 + i32.add + i32.load8_s $0 + local.tee $6 + i32.sub + i32.const 31 + i32.shr_s + local.get $6 + i32.or + local.get $6 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|025 + end + end i32.const 10 - i32.const 3 - i32.const 68 - i32.const 14368 + i32.const 0 + i32.const 63 + i32.const 11920 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $7 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -41734,12 +41108,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 f32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41760,7 +41133,7 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u local.tee $3 local.get $1 @@ -41780,33 +41153,33 @@ i32.lt_s if local.get $2 - i32.const 2 + i32.const 1 i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.load $0 offset=4 i32.add - f32.load $0 - local.tee $5 + i32.load16_s $0 + local.tee $4 local.get $1 i32.load $0 offset=4 - local.get $4 + local.get $5 i32.add - f32.load $0 - local.tee $6 - f32.ne + i32.load16_s $0 + local.tee $5 + i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 14544 + i32.const 12000 i32.store $0 - i32.const 14544 + i32.const 12000 i32.const 3 local.get $2 f64.convert_i32_s + local.get $4 + f64.convert_i32_s local.get $5 - f64.promote_f32 - local.get $6 - f64.promote_f32 + f64.convert_i32_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41829,18 +41202,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41857,347 +41229,262 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $3 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $6 i32.store $0 - local.get $3 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $7 i32.store $0 offset=4 - local.get $4 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $1 i32.store $0 offset=8 - local.get $5 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $8 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11952 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 block $folding-inner0 - i32.const 11020 + i32.const 11100 i32.load $0 - local.tee $6 - local.get $8 + local.tee $8 + i32.const 3 + i32.add + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $8 + local.get $4 i32.load $0 offset=4 - local.set $9 - i32.const 11012 + i32.const 6 + i32.add + local.set $5 + i32.const 11092 i32.load $0 - local.set $10 + local.set $9 loop $for-loop|0 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if + local.get $5 + local.get $0 + i32.const 1 + i32.shl + i32.add local.get $9 - local.get $2 + local.get $0 i32.const 2 i32.shl - local.tee $7 - i32.add - local.get $7 - local.get $10 i32.add - i32.load $0 - f32.convert_i32_s - f32.store $0 + f32.load $0 + local.tee $2 + i32.trunc_sat_f32_s + i32.const 0 local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 $0 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end i32.const 10 - i32.const 2 - i32.const 61 - i32.const 14480 + i32.const 1 + i32.const 64 + i32.const 12048 call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $8 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11088 + local.get $0 i32.store $0 offset=16 - local.get $8 - i32.const 11088 - i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 2 - i32.const 61 - i32.const 14592 + i32.const 1 + i32.const 64 + i32.const 12096 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store $0 offset=16 - local.get $8 - local.get $2 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 6 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 i32.add - local.get $8 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $8 + local.get $4 i32.load $0 offset=4 - i32.const 24 + i32.const 4 i32.add local.set $6 - local.get $3 - i32.load $0 offset=4 - local.set $3 - loop $for-loop|02 - local.get $1 - local.get $2 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $5 i32.lt_s if local.get $6 - local.get $1 - i32.const 2 + local.get $0 + i32.const 1 i32.shl i32.add - local.get $3 - local.get $1 + local.get $8 + local.get $0 i32.const 3 i32.shl i32.add - i64.load $0 - f32.convert_i64_s - f32.store $0 - local.get $1 + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_s + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 $0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|02 + local.set $0 + br $for-loop|07 end end i32.const 10 - i32.const 2 - i32.const 61 - i32.const 14656 + i32.const 1 + i32.const 64 + i32.const 12144 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=16 - local.get $8 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $4 - i32.load $0 offset=8 - local.tee $1 - local.get $8 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $8 - i32.load $0 offset=4 - local.set $2 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $4 - i32.load $0 offset=4 - local.set $3 - loop $for-loop|06 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_u $0 - f32.convert_i32_u - f32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|06 - end - end - local.get $5 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 4 - i32.add - local.get $8 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $8 - i32.load $0 offset=4 - i32.const 16 - i32.add - local.set $2 - local.get $5 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|010 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - f32.convert_i32_s - f32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|010 - end - end + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 - i32.const 11276 - i32.load $0 - local.tee $1 - i32.const 7 - i32.add - local.get $8 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $8 - i32.load $0 offset=4 - i32.const 28 - i32.add - local.set $2 - i32.const 11268 - i32.load $0 - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|015 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_s $0 - f32.convert_i32_s - f32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|015 - end - end + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 - i32.const 2 - i32.const 61 - i32.const 14720 + i32.const 1 + i32.const 64 + i32.const 12192 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $8 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -42211,12 +41498,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 f64) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -42237,7 +41523,7 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 3 + i32.const 1 i32.shr_u local.tee $3 local.get $1 @@ -42257,31 +41543,33 @@ i32.lt_s if local.get $2 - i32.const 3 + i32.const 1 i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.load $0 offset=4 i32.add - f64.load $0 - local.tee $5 + i32.load16_u $0 + local.tee $4 local.get $1 i32.load $0 offset=4 - local.get $4 + local.get $5 i32.add - f64.load $0 - local.tee $6 - f64.ne + i32.load16_u $0 + local.tee $5 + i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 14896 + i32.const 12288 i32.store $0 - i32.const 14896 + i32.const 12288 i32.const 3 local.get $2 f64.convert_i32_s + local.get $4 + f64.convert_i32_u local.get $5 - local.get $6 + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -42304,15 +41592,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42336,100 +41626,129 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $6 i32.store $0 - local.get $2 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $7 i32.store $0 offset=4 - local.get $3 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $1 i32.store $0 offset=8 - local.get $4 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12240 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 block $folding-inner0 - i32.const 11020 + i32.const 11100 i32.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=8 + local.tee $8 i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $4 i32.load $0 offset=4 - local.set $6 - i32.const 11012 + i32.const 6 + i32.add + local.set $5 + i32.const 11092 i32.load $0 - local.set $7 + local.set $9 loop $for-loop|0 local.get $0 - local.get $5 + local.get $8 i32.lt_s if - local.get $6 + local.get $5 local.get $0 - i32.const 3 + i32.const 1 i32.shl i32.add - local.get $7 + local.get $9 local.get $0 i32.const 2 i32.shl i32.add - i32.load $0 - f64.convert_i32_s - f64.store $0 + f32.load $0 + local.tee $2 + i32.trunc_sat_f32_u + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 $0 local.get $0 i32.const 1 i32.add @@ -42438,99 +41757,54 @@ end end i32.const 10 - i32.const 3 - i32.const 62 - i32.const 14784 + i32.const 1 + i32.const 65 + i32.const 12336 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $1 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - i32.const 11100 - i32.load $0 - local.tee $5 - i32.const 3 - i32.add - local.get $1 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load $0 offset=4 - i32.const 24 - i32.add - local.set $6 - i32.const 11092 - i32.load $0 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|03 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load $0 - f64.promote_f32 - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - end - end + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 3 - i32.const 62 - i32.const 14944 + i32.const 1 + i32.const 65 + i32.const 12384 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $1 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $2 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 local.tee $5 - i32.const 6 + i32.const 2 i32.add - local.get $1 + local.get $4 i32.load $0 offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $4 i32.load $0 offset=4 - i32.const 48 + i32.const 4 i32.add local.set $6 - local.get $2 - i32.load $0 offset=4 - local.set $2 + i32.const 11188 + i32.load $0 + local.set $8 i32.const 0 local.set $0 loop $for-loop|07 @@ -42540,16 +41814,25 @@ if local.get $6 local.get $0 - i32.const 3 + i32.const 1 i32.shl - local.tee $7 i32.add - local.get $2 - local.get $7 + local.get $8 + local.get $0 + i32.const 3 + i32.shl i32.add - i64.load $0 - f64.convert_i64_s - f64.store $0 + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_u + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 $0 local.get $0 i32.const 1 i32.add @@ -42558,164 +41841,40 @@ end end i32.const 10 - i32.const 3 - i32.const 62 - i32.const 15056 + i32.const 1 + i32.const 65 + i32.const 12432 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $1 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $3 - i32.load $0 offset=8 - local.tee $2 - local.get $1 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load $0 offset=4 - local.set $5 - local.get $3 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|011 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_u $0 - f64.convert_i32_u - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|011 - end - end + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $4 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 4 - i32.add - local.get $1 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load $0 offset=4 - i32.const 32 - i32.add - local.set $3 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $4 - i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|015 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - f64.convert_i32_s - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|015 - end - end + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 - i32.const 11276 - i32.load $0 - local.tee $2 - i32.const 7 - i32.add - local.get $1 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load $0 offset=4 - i32.const 56 - i32.add - local.set $3 - i32.const 11268 - i32.load $0 - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|020 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.add - i32.load8_s $0 - f64.convert_i32_s - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|020 - end - end + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 - i32.const 3 - i32.const 62 - i32.const 15168 + i32.const 1 + i32.const 65 + i32.const 12480 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $1 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -42729,175 +41888,1931 @@ call $~lib/builtins/abort unreachable ) - (func $start:std/typedarray (type $none_=>_none) - (local $0 i32) - (local $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load $0 + local.tee $4 + local.get $1 + i32.load $0 offset=4 + local.get $5 + i32.add + i32.load $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12592 + i32.store $0 + i32.const 12592 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) (local $7 i32) - (local $8 f64) + (local $8 i32) (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i32) - (local $13 f64) - (local $14 f32) - (local $15 i64) - (local $16 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 120 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner36 - block $folding-inner35 - block $folding-inner34 - block $folding-inner33 - block $folding-inner32 - block $folding-inner31 - block $folding-inner30 - block $folding-inner29 - block $folding-inner28 - block $folding-inner27 - block $folding-inner26 - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner18 - block $folding-inner17 - block $folding-inner16 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner15 - block $folding-inner14 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 120 - memory.fill $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 49396 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store $0 - i32.const 1288 - i32.const 1280 - i32.store $0 - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store $0 - i32.const 1320 - i32.const 1312 - i32.store $0 - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store $0 - i32.const 1464 - i32.const 1456 - i32.store $0 - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store $0 - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store $0 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store $0 offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12528 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11100 + i32.load $0 + local.tee $5 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 12 + i32.add + local.set $9 + i32.const 11092 + i32.load $0 + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $10 + local.get $0 + i32.const 2 + i32.shl + local.tee $6 + i32.add + f32.load $0 + local.set $2 + local.get $6 + local.get $9 + i32.add + local.get $2 + i32.trunc_sat_f32_s + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12640 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12704 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 8 + i32.add + local.set $6 + i32.const 11188 + i32.load $0 + local.set $7 + i32.const 0 + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_s + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12768 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12832 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load $0 + local.tee $4 + local.get $1 + i32.load $0 offset=4 + local.get $5 + i32.add + i32.load $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12960 + i32.store $0 + i32.const 12960 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store $0 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store $0 offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12896 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11100 + i32.load $0 + local.tee $5 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 12 + i32.add + local.set $9 + i32.const 11092 + i32.load $0 + local.set $10 + loop $for-loop|0 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $10 + local.get $0 + i32.const 2 + i32.shl + local.tee $6 + i32.add + f32.load $0 + local.set $2 + local.get $6 + local.get $9 + i32.add + local.get $2 + i32.trunc_sat_f32_u + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13008 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13072 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 8 + i32.add + local.set $6 + i32.const 11188 + i32.load $0 + local.set $7 + i32.const 0 + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_u + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13136 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 13200 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load $0 offset=4 + i32.add + i64.load $0 + local.tee $5 + local.get $1 + i32.load $0 offset=4 + local.get $4 + i32.add + i64.load $0 + local.tee $6 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 13376 + i32.store $0 + i32.const 13376 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.convert_i64_s + local.get $6 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store $0 + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store $0 offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13264 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store $0 offset=16 + local.get $4 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11100 + i32.load $0 + local.tee $7 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 24 + i32.add + local.set $8 + i32.const 11092 + i32.load $0 + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.tee $3 + i64.trunc_sat_f32_s + i64.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13424 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13536 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 16 + i32.add + local.set $7 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load $0 + local.set $2 + local.get $7 + local.get $9 + i32.add + local.get $2 + i64.trunc_sat_f64_s + i64.const 0 + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + select + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13648 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13760 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load $0 offset=4 + i32.add + i64.load $0 + local.tee $5 + local.get $1 + i32.load $0 offset=4 + local.get $4 + i32.add + i64.load $0 + local.tee $6 + i64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 13984 + i32.store $0 + i32.const 13984 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.convert_i64_u + local.get $6 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store $0 + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store $0 offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store $0 offset=16 + local.get $4 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11100 + i32.load $0 + local.tee $7 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 24 + i32.add + local.set $8 + i32.const 11092 + i32.load $0 + local.set $9 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.tee $3 + i64.trunc_sat_f32_u + i64.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14032 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 16 + i32.add + local.set $7 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|07 + local.get $0 + local.get $5 + i32.lt_s + if + local.get $8 + local.get $0 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load $0 + local.set $2 + local.get $7 + local.get $9 + i32.add + local.get $2 + i64.trunc_sat_f64_u + i64.const 0 + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + select + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14256 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 14368 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $4 + local.get $0 + i32.load $0 offset=4 + i32.add + f32.load $0 + local.tee $5 + local.get $1 + i32.load $0 offset=4 + local.get $4 + i32.add + f32.load $0 + local.tee $6 + f32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 14544 + i32.store $0 + i32.const 14544 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + f64.promote_f32 + local.get $6 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 3 + i32.shl + local.tee $4 + local.get $0 + i32.load $0 offset=4 + i32.add + f64.load $0 + local.tee $5 + local.get $1 + i32.load $0 offset=4 + local.get $4 + i32.add + f64.load $0 + local.tee $6 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 14896 + i32.store $0 + i32.const 14896 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $5 + local.get $6 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/typedarray (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 f64) + (local $14 f32) + (local $15 i64) + (local $16 i32) + global.get $~lib/memory/__stack_pointer + i32.const 120 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner36 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner31 + block $folding-inner30 + block $folding-inner29 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner24 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner20 + block $folding-inner19 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 120 + memory.fill $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 49396 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store $0 + i32.const 1288 + i32.const 1280 + i32.store $0 + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store $0 + i32.const 1320 + i32.const 1312 + i32.store $0 + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store $0 + i32.const 1464 + i32.const 1456 + i32.store $0 + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store $0 + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort unreachable end local.get $2 @@ -44749,7 +45664,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $2 i64.const 0 @@ -44792,14 +45707,14 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 2896 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add @@ -44807,7 +45722,7 @@ br $for-loop|0 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -44824,7 +45739,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -44850,7 +45765,7 @@ i32.const 2928 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -44859,7 +45774,7 @@ local.get $5 i32.load $0 offset=8 local.set $3 - loop $for-loop|05 + loop $for-loop|019 local.get $1 local.get $3 i32.lt_s @@ -44871,22 +45786,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 2928 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|05 + br $for-loop|019 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -44903,7 +45818,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -44929,7 +45844,7 @@ i32.const 2960 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -44938,7 +45853,7 @@ local.get $5 i32.load $0 offset=8 local.set $3 - loop $for-loop|013 + loop $for-loop|029 local.get $1 local.get $3 i32.lt_s @@ -44950,22 +45865,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 2960 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|013 + br $for-loop|029 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -44982,7 +45897,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45008,7 +45923,7 @@ i32.const 2992 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -45019,7 +45934,7 @@ i32.const 1 i32.shr_u local.set $3 - loop $for-loop|017 + loop $for-loop|034 local.get $1 local.get $3 i32.lt_s @@ -45033,22 +45948,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 2992 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|017 + br $for-loop|034 end end - local.get $12 + local.get $9 i32.const 65535 i32.and i32.const 6 @@ -45065,7 +45980,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45091,7 +46006,7 @@ i32.const 3024 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -45102,7 +46017,7 @@ i32.const 1 i32.shr_u local.set $3 - loop $for-loop|022 + loop $for-loop|040 local.get $1 local.get $3 i32.lt_s @@ -45116,22 +46031,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 3024 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|022 + br $for-loop|040 end end - local.get $12 + local.get $9 i32.const 65535 i32.and i32.const 6 @@ -45148,7 +46063,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45174,7 +46089,7 @@ i32.const 3056 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -45185,7 +46100,7 @@ i32.const 2 i32.shr_u local.set $3 - loop $for-loop|027 + loop $for-loop|046 local.get $1 local.get $3 i32.lt_s @@ -45199,22 +46114,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 3056 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|027 + br $for-loop|046 end end - local.get $12 + local.get $9 i32.const 6 i32.ne br_if $folding-inner1 @@ -45229,7 +46144,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45255,7 +46170,7 @@ i32.const 3088 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $5 i32.load $0 offset=4 local.set $4 @@ -45266,7 +46181,7 @@ i32.const 2 i32.shr_u local.set $3 - loop $for-loop|032 + loop $for-loop|052 local.get $1 local.get $3 i32.lt_s @@ -45280,22 +46195,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $5 i32.const 3088 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|032 + br $for-loop|052 end end - local.get $12 + local.get $9 i32.const 6 i32.ne br_if $folding-inner1 @@ -45310,7 +46225,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45345,7 +46260,7 @@ i32.const 3 i32.shr_u local.set $2 - loop $for-loop|037 + loop $for-loop|058 local.get $1 local.get $2 i32.lt_s @@ -45356,11 +46271,11 @@ i32.shl i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $10 + local.get $11 local.get $1 local.get $4 i32.const 3120 @@ -45371,7 +46286,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|037 + br $for-loop|058 end end local.get $15 @@ -45389,7 +46304,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45426,7 +46341,7 @@ i32.const 3 i32.shr_u local.set $2 - loop $for-loop|042 + loop $for-loop|064 local.get $1 local.get $2 i32.lt_s @@ -45437,11 +46352,11 @@ i32.shl i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $10 + local.get $11 local.get $1 local.get $4 i32.const 3152 @@ -45452,7 +46367,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|042 + br $for-loop|064 end end local.get $15 @@ -45470,7 +46385,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45505,7 +46420,7 @@ i32.const 2 i32.shr_u local.set $2 - loop $for-loop|047 + loop $for-loop|070 local.get $1 local.get $2 i32.lt_s @@ -45531,7 +46446,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|047 + br $for-loop|070 end end local.get $14 @@ -45549,7 +46464,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -45584,7 +46499,7 @@ i32.const 3 i32.shr_u local.set $2 - loop $for-loop|052 + loop $for-loop|076 local.get $1 local.get $2 i32.lt_s @@ -45595,11 +46510,11 @@ i32.shl i32.add f64.load $0 - local.set $8 + local.set $10 i32.const 4 global.set $~argumentsLength local.get $13 - local.get $8 + local.get $10 local.get $1 local.get $4 i32.const 3216 @@ -45610,7 +46525,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|052 + br $for-loop|076 end end local.get $13 @@ -45628,7 +46543,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45679,7 +46594,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45730,7 +46645,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45781,7 +46696,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45832,7 +46747,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45883,7 +46798,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45934,7 +46849,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -45985,7 +46900,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -46036,7 +46951,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -46087,7 +47002,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -46138,7 +47053,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -46189,7 +47104,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46215,7 +47130,7 @@ i32.const 3248 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46224,7 +47139,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|059 + loop $for-loop|082 local.get $1 i32.const 0 i32.ge_s @@ -46236,22 +47151,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3248 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|059 + br $for-loop|082 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -46268,7 +47183,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46294,7 +47209,7 @@ i32.const 3280 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46303,7 +47218,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|064 + loop $for-loop|088 local.get $1 i32.const 0 i32.ge_s @@ -46315,22 +47230,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3280 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|064 + br $for-loop|088 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -46347,7 +47262,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46373,7 +47288,7 @@ i32.const 3312 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46382,7 +47297,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|071 + loop $for-loop|096 local.get $1 i32.const 0 i32.ge_s @@ -46394,22 +47309,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3312 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|071 + br $for-loop|096 end end - local.get $12 + local.get $9 i32.const 255 i32.and i32.const 6 @@ -46426,7 +47341,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46452,7 +47367,7 @@ i32.const 3344 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46463,7 +47378,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|076 + loop $for-loop|0102 local.get $1 i32.const 0 i32.ge_s @@ -46477,22 +47392,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3344 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|076 + br $for-loop|0102 end end - local.get $12 + local.get $9 i32.const 65535 i32.and i32.const 6 @@ -46509,7 +47424,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46535,7 +47450,7 @@ i32.const 3376 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46546,7 +47461,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|081 + loop $for-loop|0108 local.get $1 i32.const 0 i32.ge_s @@ -46560,22 +47475,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3376 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|081 + br $for-loop|0108 end end - local.get $12 + local.get $9 i32.const 65535 i32.and i32.const 6 @@ -46592,7 +47507,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46618,7 +47533,7 @@ i32.const 3408 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46629,7 +47544,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|086 + loop $for-loop|0114 local.get $1 i32.const 0 i32.ge_s @@ -46643,22 +47558,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3408 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|086 + br $for-loop|0114 end end - local.get $12 + local.get $9 i32.const 6 i32.ne br_if $folding-inner5 @@ -46673,7 +47588,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46699,7 +47614,7 @@ i32.const 3440 i32.store $0 offset=4 i32.const 0 - local.set $12 + local.set $9 local.get $4 i32.load $0 offset=4 local.set $3 @@ -46710,7 +47625,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|091 + loop $for-loop|0120 local.get $1 i32.const 0 i32.ge_s @@ -46724,22 +47639,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $9 local.get $2 local.get $1 local.get $4 i32.const 3440 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $9 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|091 + br $for-loop|0120 end end - local.get $12 + local.get $9 i32.const 6 i32.ne br_if $folding-inner5 @@ -46754,7 +47669,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46791,7 +47706,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|096 + loop $for-loop|0126 local.get $1 i32.const 0 i32.ge_s @@ -46802,11 +47717,11 @@ i32.shl i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $10 + local.get $11 local.get $1 local.get $3 i32.const 3472 @@ -46817,7 +47732,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|096 + br $for-loop|0126 end end local.get $15 @@ -46835,7 +47750,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46872,7 +47787,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|0101 + loop $for-loop|0132 local.get $1 i32.const 0 i32.ge_s @@ -46883,11 +47798,11 @@ i32.shl i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength local.get $15 - local.get $10 + local.get $11 local.get $1 local.get $3 i32.const 3504 @@ -46898,7 +47813,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0101 + br $for-loop|0132 end end local.get $15 @@ -46916,7 +47831,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -46953,7 +47868,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|0106 + loop $for-loop|0138 local.get $1 i32.const 0 i32.ge_s @@ -46979,7 +47894,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0106 + br $for-loop|0138 end end local.get $14 @@ -46997,7 +47912,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47034,7 +47949,7 @@ i32.const 1 i32.sub local.set $1 - loop $for-loop|0111 + loop $for-loop|0144 local.get $1 i32.const 0 i32.ge_s @@ -47045,11 +47960,11 @@ i32.shl i32.add f64.load $0 - local.set $8 + local.set $10 i32.const 4 global.set $~argumentsLength local.get $13 - local.get $8 + local.get $10 local.get $1 local.get $3 i32.const 3568 @@ -47060,7 +47975,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0111 + br $for-loop|0144 end end local.get $13 @@ -47078,7 +47993,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47089,17 +48004,17 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -47115,15 +48030,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 local.set $5 - local.get $9 + local.get $8 i32.load $0 offset=4 local.set $4 local.get $1 @@ -47155,7 +48070,7 @@ i32.add local.get $1 local.get $16 - local.get $9 + local.get $8 i32.const 3600 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -47194,19 +48109,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $3 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $3 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47220,7 +48135,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47231,17 +48146,17 @@ local.get $1 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -47257,15 +48172,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 local.set $5 - local.get $9 + local.get $8 i32.load $0 offset=4 local.set $4 local.get $1 @@ -47297,7 +48212,7 @@ i32.add local.get $1 local.get $16 - local.get $9 + local.get $8 i32.const 3632 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -47336,19 +48251,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $3 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $3 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47362,7 +48277,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47373,17 +48288,17 @@ local.get $1 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -47399,15 +48314,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 local.set $5 - local.get $9 + local.get $8 i32.load $0 offset=4 local.set $4 local.get $1 @@ -47439,7 +48354,7 @@ i32.add local.get $1 local.get $16 - local.get $9 + local.get $8 i32.const 3664 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -47478,19 +48393,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $3 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $3 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47504,7 +48419,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47530,7 +48445,7 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $11 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store $0 offset=4 @@ -47541,7 +48456,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47550,7 +48465,7 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $9 + local.set $8 local.get $12 i32.load $0 offset=4 local.set $7 @@ -47561,7 +48476,7 @@ local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 1 i32.shl local.tee $4 @@ -47570,7 +48485,7 @@ local.tee $3 i32.store $0 offset=4 loop $for-loop|09 - local.get $9 + local.get $8 local.get $16 i32.gt_s if @@ -47620,7 +48535,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $9 local.get $5 i32.store $0 offset=8 local.get $5 @@ -47628,19 +48543,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $5 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $5 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47654,7 +48569,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47680,7 +48595,7 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $11 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store $0 offset=4 @@ -47691,7 +48606,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47700,7 +48615,7 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $9 + local.set $8 local.get $12 i32.load $0 offset=4 local.set $7 @@ -47711,7 +48626,7 @@ local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 1 i32.shl local.tee $4 @@ -47720,7 +48635,7 @@ local.tee $3 i32.store $0 offset=4 loop $for-loop|012 - local.get $9 + local.get $8 local.get $16 i32.gt_s if @@ -47770,7 +48685,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $9 local.get $5 i32.store $0 offset=8 local.get $5 @@ -47778,19 +48693,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $5 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $5 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47804,7 +48719,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47830,7 +48745,7 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $11 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store $0 offset=4 @@ -47841,7 +48756,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47850,7 +48765,7 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $9 + local.set $8 local.get $12 i32.load $0 offset=4 local.set $7 @@ -47861,7 +48776,7 @@ local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 2 i32.shl local.tee $4 @@ -47870,7 +48785,7 @@ local.tee $3 i32.store $0 offset=4 loop $for-loop|015 - local.get $9 + local.get $8 local.get $16 i32.gt_s if @@ -47920,7 +48835,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $9 local.get $5 i32.store $0 offset=8 local.get $5 @@ -47928,19 +48843,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $5 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $5 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -47954,7 +48869,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -47980,7 +48895,7 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $11 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store $0 offset=4 @@ -47991,7 +48906,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -48000,7 +48915,7 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $9 + local.set $8 local.get $12 i32.load $0 offset=4 local.set $7 @@ -48011,7 +48926,7 @@ local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 2 i32.shl local.tee $4 @@ -48020,7 +48935,7 @@ local.tee $3 i32.store $0 offset=4 loop $for-loop|018 - local.get $9 + local.get $8 local.get $16 i32.gt_s if @@ -48070,7 +48985,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $9 local.get $5 i32.store $0 offset=8 local.get $5 @@ -48078,19 +48993,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $5 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $5 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -48104,7 +49019,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -48115,22 +49030,22 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $11 + local.tee $9 i32.store $0 - local.get $11 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $11 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $11 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3824 i32.store $0 offset=4 @@ -48141,17 +49056,17 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $11 + local.get $9 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $7 - local.get $11 + local.get $9 i32.load $0 offset=4 local.set $5 local.get $1 @@ -48181,15 +49096,15 @@ local.tee $1 i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength local.get $1 local.get $2 i32.add - local.get $10 - local.get $16 local.get $11 + local.get $16 + local.get $9 i32.const 3824 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) @@ -48220,7 +49135,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 local.get $4 i32.store $0 offset=8 local.get $4 @@ -48228,19 +49143,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $4 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $4 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -48254,7 +49169,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -48265,22 +49180,22 @@ local.get $1 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $11 + local.tee $9 i32.store $0 - local.get $11 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $11 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $11 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3856 i32.store $0 offset=4 @@ -48291,17 +49206,17 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $11 + local.get $9 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $7 - local.get $11 + local.get $9 i32.load $0 offset=4 local.set $5 local.get $1 @@ -48331,15 +49246,15 @@ local.tee $1 i32.add i64.load $0 - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength local.get $1 local.get $2 i32.add - local.get $10 - local.get $16 local.get $11 + local.get $16 + local.get $9 i32.const 3856 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) @@ -48370,7 +49285,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 local.get $4 i32.store $0 offset=8 local.get $4 @@ -48378,19 +49293,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner16 + br_if $folding-inner20 local.get $4 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner17 + br_if $folding-inner21 local.get $4 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne - br_if $folding-inner18 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -48404,7 +49319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -48415,22 +49330,22 @@ local.get $1 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $11 + local.tee $9 i32.store $0 - local.get $11 + local.get $9 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $11 + local.get $9 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $11 + local.get $9 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3888 i32.store $0 offset=4 @@ -48441,17 +49356,17 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $11 + local.get $9 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $7 - local.get $11 + local.get $9 i32.load $0 offset=4 local.set $5 local.get $1 @@ -48469,7 +49384,7 @@ call $~lib/rt/itcms/__new local.tee $2 i32.store $0 offset=4 - loop $for-loop|028 + loop $for-loop|027 local.get $7 local.get $16 i32.gt_s @@ -48489,166 +49404,16 @@ i32.add local.get $6 local.get $16 - local.get $11 - i32.const 3888 - i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_f32) - f32.store $0 - local.get $16 - i32.const 1 - i32.add - local.set $16 - br $for-loop|028 - end - end - local.get $4 - local.get $2 - i32.store $0 - local.get $2 - if - local.get $4 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $2 - i32.store $0 offset=4 - local.get $4 - local.get $3 - i32.store $0 offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $4 - i32.store $0 offset=8 - local.get $4 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - br_if $folding-inner16 - local.get $4 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - br_if $folding-inner17 - local.get $4 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $16 - 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 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store $0 - local.get $1 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $11 - i32.store $0 - local.get $11 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $11 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $11 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 3920 - i32.store $0 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 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store $0 - local.get $11 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.set $7 - local.get $11 - i32.load $0 offset=4 - local.set $5 - local.get $1 - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 3 - i32.shl - local.tee $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store $0 offset=4 - loop $for-loop|031 - local.get $7 - local.get $16 - i32.gt_s - if - local.get $5 - local.get $16 - i32.const 3 - i32.shl - local.tee $1 - i32.add - f64.load $0 - local.set $8 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $2 - i32.add - local.get $8 - local.get $16 - local.get $11 - i32.const 3920 + local.get $9 + i32.const 3888 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_f64) - f64.store $0 + call_indirect $0 (type $f32_i32_i32_=>_f32) + f32.store $0 local.get $16 i32.const 1 i32.add local.set $16 - br $for-loop|031 + br $for-loop|027 end end local.get $4 @@ -48670,162 +49435,70 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 local.get $4 i32.store $0 offset=8 local.get $4 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - br_if $folding-inner16 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner20 local.get $4 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - br_if $folding-inner17 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + br_if $folding-inner21 local.get $4 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - br_if $folding-inner18 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + i32.const 0 + local.set $16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 + i32.const 0 + i32.store $0 offset=8 + local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $9 i32.store $0 - local.get $4 + local.get $9 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $9 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $4 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $9 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|0633 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 - i32.add - i32.load8_s $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $1 - local.get $12 - local.get $4 - i32.const 4304 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|0633 - end - end - i32.const 0 - end - i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|04 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 - i32.add - i32.load8_s $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $1 - local.get $12 - local.get $4 - i32.const 4336 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|04 - end - end - i32.const 0 - end - br_if $folding-inner24 + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 3920 + i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48833,119 +49506,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 - local.get $1 + local.get $9 + i32.load $0 offset=8 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor + i32.shr_u + local.set $7 + local.get $9 + i32.load $0 offset=4 + local.set $5 + local.get $1 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new local.tee $4 i32.store $0 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 3 + i32.shl + local.tee $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|07 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 - i32.add - i32.load8_u $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $1 - local.get $12 - local.get $4 - i32.const 4368 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|07 - end - end - i32.const 0 - end - i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|048 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 - i32.add - i32.load8_u $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $1 - local.get $12 - local.get $4 - i32.const 4400 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|048 - end + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 offset=4 + loop $for-loop|030 + local.get $7 + local.get $16 + i32.gt_s + if + local.get $5 + local.get $16 + i32.const 3 + i32.shl + local.tee $1 + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $2 + i32.add + local.get $10 + local.get $16 + local.get $9 + i32.const 3920 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store $0 + local.get $16 + i32.const 1 + i32.add + local.set $16 + br $for-loop|030 end - i32.const 0 end - br_if $folding-inner24 + local.get $4 + local.get $2 + i32.store $0 + local.get $2 + if + local.get $4 + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 + i32.store $0 offset=4 + local.get $4 + local.get $3 + i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 + local.get $4 + i32.store $0 offset=8 + local.get $4 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner20 + local.get $4 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner21 + local.get $4 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48953,115 +49628,115 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.09 (result i32) + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4432 + i32.const 4304 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - local.set $2 - loop $for-loop|010 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0150 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 + local.get $1 + local.get $4 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4432 + local.get $5 + i32.const 4304 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.09 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|010 + local.set $1 + br $for-loop|0150 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0111 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0153 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4464 + i32.const 4336 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - local.set $2 - loop $for-loop|0412 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0158 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 + local.get $1 + local.get $4 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4464 + local.get $5 + i32.const 4336 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0111 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0153 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0412 + local.set $1 + br $for-loop|0158 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49073,123 +49748,115 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Int16Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4496 + i32.const 4368 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|014 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0164 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4496 + local.get $5 + i32.const 4368 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|014 + local.set $1 + br $for-loop|0164 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0167 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4528 + i32.const 4400 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0415 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0172 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4528 + local.get $5 + i32.const 4400 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0167 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0415 + local.set $1 + br $for-loop|0172 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49201,123 +49868,115 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint16Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0175 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4560 + i32.const 4432 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|016 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0180 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4560 + local.get $5 + i32.const 4432 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0175 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|016 + local.set $1 + br $for-loop|0180 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0183 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4592 + i32.const 4464 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0417 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0188 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4592 + local.get $5 + i32.const 4464 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0183 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0417 + local.set $1 + br $for-loop|0188 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49329,123 +49988,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Int32Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4624 + i32.const 4496 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|01834 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0194 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4624 + local.get $5 + i32.const 4496 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|01834 + local.set $1 + br $for-loop|0194 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0197 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4656 + i32.const 4528 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0419 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0202 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4656 + local.get $5 + i32.const 4528 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0197 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0419 + local.set $1 + br $for-loop|0202 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49457,123 +50116,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint32Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4688 + i32.const 4560 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|020 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0208 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4688 + local.get $5 + i32.const 4560 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|020 + local.set $1 + br $for-loop|0208 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0211 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 4592 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0421 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0216 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl - i32.add - i32.load $0 - local.set $1 + i32.add + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 4720 + local.get $5 + i32.const 4592 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0211 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0421 + local.set $1 + br $for-loop|0216 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49585,123 +50244,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i32.const 6 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4752 + i32.const 4624 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|023 + local.set $3 + loop $for-loop|0222 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $12 - local.get $3 - i32.const 4752 + local.get $2 + local.get $1 + local.get $5 + i32.const 4624 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|023 + local.set $1 + br $for-loop|0222 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0225 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4784 + i32.const 4656 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0424 + local.set $3 + loop $for-loop|0230 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $12 - local.get $3 - i32.const 4784 + local.get $2 + local.get $1 + local.get $5 + i32.const 4656 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0225 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0424 + local.set $1 + br $for-loop|0230 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49713,123 +50372,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $5 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $5 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4816 + i32.const 4688 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|025 + local.set $3 + loop $for-loop|0236 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $12 - local.get $3 - i32.const 4816 + local.get $2 + local.get $1 + local.get $5 + i32.const 4688 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|025 + local.set $1 + br $for-loop|0236 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0239 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 4720 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0426 + local.set $3 + loop $for-loop|0244 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $12 - local.get $3 - i32.const 4848 + local.get $2 + local.get $1 + local.get $5 + i32.const 4720 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0239 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0426 + local.set $1 + br $for-loop|0244 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49841,123 +50500,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i64.const 6 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4880 + i32.const 4752 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|02835 + local.set $2 + loop $for-loop|0250 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $12 - local.get $3 - i32.const 4880 + local.get $11 + local.get $1 + local.get $4 + i32.const 4752 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|02835 + local.set $1 + br $for-loop|0250 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0253 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4912 + i32.const 4784 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0429 + local.set $2 + loop $for-loop|0258 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $12 - local.get $3 - i32.const 4912 + local.get $11 + local.get $1 + local.get $4 + i32.const 4784 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0253 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0429 + local.set $1 + br $for-loop|0258 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -49969,123 +50628,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 4816 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|030 + local.set $2 + loop $for-loop|0264 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $8 - local.get $12 - local.get $3 - i32.const 4944 + local.get $11 + local.get $1 + local.get $4 + i32.const 4816 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|030 + local.set $1 + br $for-loop|0264 end end i32.const 0 end i32.eqz - br_if $folding-inner23 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0267 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4976 + i32.const 4848 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0431 + local.set $2 + loop $for-loop|0272 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $8 - local.get $12 - local.get $3 - i32.const 4976 + local.get $11 + local.get $1 + local.get $4 + i32.const 4848 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0267 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0431 + local.set $1 + br $for-loop|0272 end end i32.const 0 end - br_if $folding-inner24 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50097,118 +50756,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store $0 local.get $4 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $4 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set + f32.const 4 + call $~lib/typedarray/Float32Array#__set local.get $4 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 5008 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|033 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0278 + local.get $1 local.get $2 - local.get $12 - i32.gt_s + i32.lt_s if local.get $3 - local.get $12 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $6 local.get $1 - local.get $12 local.get $4 - i32.const 5008 + i32.const 4880 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|033 + local.set $1 + br $for-loop|0278 end end - i32.const -1 - local.set $12 + i32.const 0 end - local.get $12 - i32.const 1 - i32.ne - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 5040 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0434 + i32.eqz + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0281 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0286 + local.get $1 local.get $2 - local.get $12 - i32.gt_s + i32.lt_s if local.get $3 - local.get $12 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $6 local.get $1 - local.get $12 local.get $4 - i32.const 5040 + i32.const 4912 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0281 + drop + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0434 + local.set $1 + br $for-loop|0286 end end - i32.const -1 - local.set $12 + i32.const 0 end - local.get $12 - i32.const -1 - i32.ne - br_if $folding-inner26 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50220,118 +50884,123 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store $0 local.get $4 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $4 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $4 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|035 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0292 + local.get $1 local.get $2 - local.get $12 - i32.gt_s + i32.lt_s if local.get $3 - local.get $12 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $10 local.get $1 - local.get $12 local.get $4 - i32.const 5072 + i32.const 4944 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|035 + local.set $1 + br $for-loop|0292 end end - i32.const -1 - local.set $12 + i32.const 0 end - local.get $12 - i32.const 1 - i32.ne - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0436 + i32.eqz + br_if $folding-inner6 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0295 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0300 + local.get $1 local.get $2 - local.get $12 - i32.gt_s + i32.lt_s if local.get $3 - local.get $12 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $10 local.get $1 - local.get $12 local.get $4 - i32.const 5104 + i32.const 4976 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0295 + drop + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0436 + local.set $1 + br $for-loop|0300 end end - i32.const -1 - local.set $12 + i32.const 0 end - local.get $12 - i32.const -1 - i32.ne - br_if $folding-inner26 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50343,118 +51012,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 5008 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.037 - loop $for-loop|038 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|0306 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 + local.get $1 + local.get $4 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5136 + local.get $5 + i32.const 5008 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.037 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|038 + local.set $1 + br $for-loop|0306 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 5040 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0139 - loop $for-loop|0440 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 + loop $for-loop|0314 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 + local.get $1 + local.get $4 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5168 + local.get $5 + i32.const 5040 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0139 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0440 + local.set $1 + br $for-loop|0314 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50466,126 +51135,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 5072 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|041 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|0320 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5200 + local.get $5 + i32.const 5072 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|041 + local.set $1 + br $for-loop|0320 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 5104 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0442 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 + loop $for-loop|0328 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5232 + local.get $5 + i32.const 5104 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0442 + local.set $1 + br $for-loop|0328 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50597,126 +51258,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 5136 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|043 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 + loop $for-loop|0336 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5264 + local.get $5 + i32.const 5136 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|043 + local.set $1 + br $for-loop|0336 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5296 + i32.const 5168 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0444 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 + loop $for-loop|0344 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5296 + local.get $5 + i32.const 5168 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0444 + local.set $1 + br $for-loop|0344 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50728,126 +51381,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5328 + i32.const 5200 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|045 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|0350 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5328 + local.get $5 + i32.const 5200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|045 + local.set $1 + br $for-loop|0350 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5360 + i32.const 5232 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0446 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 + loop $for-loop|0358 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5360 + local.get $5 + i32.const 5232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0446 + local.set $1 + br $for-loop|0358 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50859,126 +51512,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5392 + i32.const 5264 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|049 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0364 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5392 + local.get $5 + i32.const 5264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|049 + local.set $1 + br $for-loop|0364 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5424 + i32.const 5296 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|0450 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 + loop $for-loop|0372 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 5424 + local.get $5 + i32.const 5296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0450 + local.set $1 + br $for-loop|0372 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -50990,126 +51643,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $3 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + call $~lib/typedarray/Int32Array#__set + local.get $5 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $5 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5456 + i32.const 5328 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|051 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0378 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 - local.get $3 - i32.const 5456 + local.get $2 + local.get $1 + local.get $5 + i32.const 5328 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|051 + local.set $1 + br $for-loop|0378 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5488 + i32.const 5360 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|0452 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 + loop $for-loop|0386 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 - local.get $3 - i32.const 5488 + local.get $2 + local.get $1 + local.get $5 + i32.const 5360 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0452 + local.set $1 + br $for-loop|0386 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51121,126 +51774,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $3 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5520 + i32.const 5392 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|053 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|0392 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 - local.get $3 - i32.const 5520 + local.get $2 + local.get $1 + local.get $5 + i32.const 5392 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|053 + local.set $1 + br $for-loop|0392 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 5424 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|0454 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 + loop $for-loop|0400 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 - local.get $3 - i32.const 5552 + local.get $2 + local.get $1 + local.get $5 + i32.const 5424 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0454 + local.set $1 + br $for-loop|0400 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51252,126 +51905,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5456 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|055 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0406 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $12 - local.get $3 - i32.const 5584 + local.get $11 + local.get $1 + local.get $4 + i32.const 5456 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|055 + local.set $1 + br $for-loop|0406 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5488 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|0456 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 + loop $for-loop|0414 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $12 - local.get $3 - i32.const 5616 + local.get $11 + local.get $1 + local.get $4 + i32.const 5488 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0456 + local.set $1 + br $for-loop|0414 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51383,126 +52036,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5648 + i32.const 5520 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|057 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0420 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $12 - local.get $3 - i32.const 5648 + local.get $11 + local.get $1 + local.get $4 + i32.const 5520 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|057 + local.set $1 + br $for-loop|0420 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner25 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5680 + i32.const 5552 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|0458 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 + loop $for-loop|0428 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $12 - local.get $3 - i32.const 5680 + local.get $11 + local.get $1 + local.get $4 + i32.const 5552 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0458 + local.set $1 + br $for-loop|0428 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner26 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51514,118 +52167,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $4 i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $3 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $4 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5712 + i32.const 5584 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 1 - i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|060 - local.get $12 - i32.const 0 - i32.ge_s + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0434 + local.get $1 + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength + local.get $6 local.get $1 - local.get $12 - local.get $3 - i32.const 5712 + local.get $4 + i32.const 5584 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $12 - br $for-loop|060 + i32.add + local.set $1 + br $for-loop|0434 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5744 + i32.const 5616 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 1 - i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0461 - local.get $12 - i32.const 0 - i32.ge_s + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 + loop $for-loop|0442 + local.get $1 + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength + local.get $6 local.get $1 - local.get $12 - local.get $3 - i32.const 5744 + local.get $4 + i32.const 5616 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 + local.get $1 i32.const 1 - i32.sub - local.set $12 - br $for-loop|0461 + i32.add + local.set $1 + br $for-loop|0442 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51637,118 +52298,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $4 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $4 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5648 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 1 - i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|062 - local.get $12 - i32.const 0 - i32.ge_s + i32.const 3 + i32.shr_u + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0448 + local.get $1 + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength + local.get $10 local.get $1 - local.get $12 - local.get $3 - i32.const 5776 + local.get $4 + i32.const 5648 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $12 - br $for-loop|062 + i32.add + local.set $1 + br $for-loop|0448 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 5680 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 i32.load $0 offset=8 - i32.const 1 - i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0463 - local.get $12 - i32.const 0 - i32.ge_s + i32.const 3 + i32.shr_u + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 + loop $for-loop|0456 + local.get $1 + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength + local.get $10 local.get $1 - local.get $12 - local.get $3 - i32.const 5808 + local.get $4 + i32.const 5680 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 + local.get $1 i32.const 1 - i32.sub - local.set $12 - br $for-loop|0463 + i32.add + local.set $1 + br $for-loop|0456 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51760,118 +52429,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5840 + i32.const 5712 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 - loop $for-loop|065 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|0462 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 + local.get $1 + local.get $3 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 5840 + local.get $4 + i32.const 5712 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|065 + local.set $1 + br $for-loop|0462 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 5872 + i32.const 5744 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 - loop $for-loop|0467 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 + loop $for-loop|0470 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 + local.get $1 + local.get $3 i32.add - i32.load8_u $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 5872 + local.get $4 + i32.const 5744 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0467 + local.set $1 + br $for-loop|0470 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -51883,126 +52552,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $3 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $3 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5904 + i32.const 5776 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|068 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|0476 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $3 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 5904 + local.get $4 + i32.const 5776 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|068 + local.set $1 + br $for-loop|0476 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 5936 + i32.const 5808 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0469 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 + loop $for-loop|0484 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $3 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 5936 + local.get $4 + i32.const 5808 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0469 + local.set $1 + br $for-loop|0484 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52014,126 +52675,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 5968 + i32.const 5840 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|070 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 + loop $for-loop|0492 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $3 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 5968 + local.get $4 + i32.const 5840 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|070 + local.set $1 + br $for-loop|0492 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6000 + i32.const 5872 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0471 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 + loop $for-loop|0500 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $3 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 6000 + local.get $4 + i32.const 5872 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0471 + local.set $1 + br $for-loop|0500 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52145,126 +52798,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $3 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $3 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5904 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|072 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|0506 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 6032 + local.get $4 + i32.const 5904 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|072 + local.set $1 + br $for-loop|0506 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6064 + i32.const 5936 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0473 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 + loop $for-loop|0514 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 6064 + local.get $4 + i32.const 5936 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0473 + local.set $1 + br $for-loop|0514 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52276,126 +52929,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $3 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $3 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6096 + i32.const 5968 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|074 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0520 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 6096 + local.get $4 + i32.const 5968 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|074 + local.set $1 + br $for-loop|0520 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6128 + i32.const 6000 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|0475 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 + loop $for-loop|0528 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.get $12 - i32.const 2 + local.get $3 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $1 - local.get $12 - local.get $3 - i32.const 6128 + local.get $4 + i32.const 6000 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $12 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0475 + local.set $1 + br $for-loop|0528 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52407,126 +53060,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 i32.store $0 - local.get $2 + local.get $4 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $2 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $2 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6160 + i32.const 6032 i32.store $0 offset=4 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|077 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0534 + local.get $1 i32.const 0 i32.ge_s if + local.get $3 local.get $1 - local.get $12 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 local.get $2 - i32.const 6160 + local.get $1 + local.get $4 + i32.const 6032 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|077 + local.set $1 + br $for-loop|0534 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6192 + i32.const 6064 i32.store $0 offset=4 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|0478 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 + loop $for-loop|0542 + local.get $1 i32.const 0 i32.ge_s if + local.get $3 local.get $1 - local.get $12 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 local.get $2 - i32.const 6192 + local.get $1 + local.get $4 + i32.const 6064 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0478 + local.set $1 + br $for-loop|0542 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52538,126 +53191,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store $0 - local.get $2 + local.get $4 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $2 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $2 + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6224 + i32.const 6096 i32.store $0 offset=4 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|079 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|0548 + local.get $1 i32.const 0 i32.ge_s if + local.get $3 local.get $1 - local.get $12 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 local.get $2 - i32.const 6224 + local.get $1 + local.get $4 + i32.const 6096 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|079 + local.set $1 + br $for-loop|0548 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6256 + i32.const 6128 i32.store $0 offset=4 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $4 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|0480 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 + loop $for-loop|0556 + local.get $1 i32.const 0 i32.ge_s if + local.get $3 local.get $1 - local.get $12 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $12 local.get $2 - i32.const 6256 + local.get $1 + local.get $4 + i32.const 6128 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $12 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0480 + local.set $1 + br $for-loop|0556 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52669,126 +53322,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store $0 - local.get $2 + local.get $3 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $2 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6288 + i32.const 6160 i32.store $0 offset=4 - local.get $2 + local.get $3 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|082 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0562 + local.get $1 i32.const 0 i32.ge_s if + local.get $2 local.get $1 - local.get $12 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $12 - local.get $2 - i32.const 6288 + local.get $11 + local.get $1 + local.get $3 + i32.const 6160 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|082 + local.set $1 + br $for-loop|0562 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6320 + i32.const 6192 i32.store $0 offset=4 - local.get $2 + local.get $3 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|0483 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 + loop $for-loop|0570 + local.get $1 i32.const 0 i32.ge_s if + local.get $2 local.get $1 - local.get $12 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load $0 - local.set $6 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $12 - local.get $2 - i32.const 6320 + local.get $11 + local.get $1 + local.get $3 + i32.const 6192 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0483 + local.set $1 + br $for-loop|0570 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52800,126 +53453,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store $0 - local.get $2 + local.get $3 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $2 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $2 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6352 + i32.const 6224 i32.store $0 offset=4 - local.get $2 + local.get $3 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|084 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0576 + local.get $1 i32.const 0 i32.ge_s if + local.get $2 local.get $1 - local.get $12 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $12 - local.get $2 - i32.const 6352 + local.get $11 + local.get $1 + local.get $3 + i32.const 6224 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|084 + local.set $1 + br $for-loop|0576 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner27 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6384 + i32.const 6256 i32.store $0 offset=4 - local.get $2 + local.get $3 i32.load $0 offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $12 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|0485 - local.get $12 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 + loop $for-loop|0584 + local.get $1 i32.const 0 i32.ge_s if + local.get $2 local.get $1 - local.get $12 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $12 - local.get $2 - i32.const 6384 + local.get $11 + local.get $1 + local.get $3 + i32.const 6256 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $12 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 + local.get $1 i32.const 1 i32.sub - local.set $12 - br $for-loop|0485 + local.set $1 + br $for-loop|0584 end end i32.const -1 - local.set $12 + local.set $1 end - local.get $12 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner28 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52931,239 +53584,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $4 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6416 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|087 - local.get $2 - local.get $12 - i32.gt_s + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6288 + i32.store $0 offset=4 + local.get $3 + i32.load $0 offset=4 + local.set $2 + local.get $3 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0590 + local.get $1 + i32.const 0 + i32.ge_s if - local.get $3 - local.get $12 - i32.add - i32.load8_s $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6416 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|087 - end - end - i32.const 1 - end - i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|0488 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength - i32.const 0 + local.get $6 local.get $1 - local.get $12 - local.get $4 - i32.const 6448 + local.get $3 + i32.const 6288 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 - drop - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 i32.const 1 - i32.add - local.set $12 - br $for-loop|0488 + i32.sub + local.set $1 + br $for-loop|0590 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner30 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store $0 local.get $1 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store $0 - local.get $4 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $4 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 6320 + i32.store $0 offset=4 + local.get $3 + i32.load $0 offset=4 + local.set $2 + local.get $3 + i32.load $0 offset=8 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6480 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|089 - local.get $2 - local.get $12 - i32.gt_s - if - local.get $3 - local.get $12 - i32.add - i32.load8_u $0 - local.set $1 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $1 - local.get $12 - local.get $4 - i32.const 6480 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|089 - end - end - i32.const 1 - end - i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|0490 - local.get $2 - local.get $12 - i32.gt_s + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 + loop $for-loop|0598 + local.get $1 + i32.const 0 + i32.ge_s if - local.get $3 - local.get $12 + local.get $2 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength - i32.const 0 + local.get $6 local.get $1 - local.get $12 - local.get $4 - i32.const 6512 + local.get $3 + i32.const 6320 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 - drop - local.get $12 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 + local.get $1 i32.const 1 - i32.add - local.set $12 - br $for-loop|0490 + i32.sub + local.set $1 + br $for-loop|0598 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner30 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53175,117 +53715,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.091 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6544 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|092 - local.get $2 - local.get $12 - i32.gt_s + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6352 + i32.store $0 offset=4 + local.get $3 + i32.load $0 offset=4 + local.set $2 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0604 + local.get $1 + i32.const 0 + i32.ge_s if - local.get $3 - local.get $12 + local.get $2 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength - i32.const 0 + local.get $10 local.get $1 - local.get $12 - local.get $4 - i32.const 6544 + local.get $3 + i32.const 6352 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.091 - drop - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 i32.const 1 - i32.add - local.set $12 - br $for-loop|092 + i32.sub + local.set $1 + br $for-loop|0604 end end - i32.const 1 + i32.const -1 + local.set $1 end - i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0193 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store $0 offset=4 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $12 - local.get $4 - i32.load $0 offset=8 - local.set $2 - loop $for-loop|0494 - local.get $2 - local.get $12 - i32.gt_s + local.get $1 + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store $0 offset=4 + local.get $3 + i32.load $0 offset=4 + local.set $2 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 + loop $for-loop|0612 + local.get $1 + i32.const 0 + i32.ge_s if - local.get $3 - local.get $12 + local.get $2 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $1 + f64.load $0 + local.set $10 i32.const 3 global.set $~argumentsLength - i32.const 0 + local.get $10 local.get $1 - local.get $12 - local.get $4 - i32.const 6576 + local.get $3 + i32.const 6384 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0193 - drop - local.get $12 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 + local.get $1 i32.const 1 - i32.add - local.set $12 - br $for-loop|0494 + i32.sub + local.set $1 + br $for-loop|0612 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner30 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53297,125 +53846,117 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Int8Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Int16Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + call $~lib/typedarray/Int8Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6416 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|095 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0618 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6608 + local.get $5 + i32.const 6416 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|095 + local.set $1 + br $for-loop|0618 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0621 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6640 + i32.const 6448 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0496 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0626 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_s $0 - local.set $1 + i32.load8_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6640 + local.get $5 + i32.const 6448 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0621 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0496 + local.set $1 + br $for-loop|0626 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53427,125 +53968,117 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint16Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + call $~lib/typedarray/Uint8Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6672 + i32.const 6480 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|097 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0632 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6672 + local.get $5 + i32.const 6480 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|097 + local.set $1 + br $for-loop|0632 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0635 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6704 + i32.const 6512 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0498 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0640 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 1 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load16_u $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6704 + local.get $5 + i32.const 6512 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0635 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0498 + local.set $1 + br $for-loop|0640 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53557,125 +54090,117 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Int32Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + call $~lib/typedarray/Uint8ClampedArray#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0643 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6736 + i32.const 6544 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.set $2 - loop $for-loop|099 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0648 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6736 + local.get $5 + i32.const 6544 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0643 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|099 + local.set $1 + br $for-loop|0648 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0651 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 6576 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.set $2 - loop $for-loop|04100 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0656 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 - i32.shl + local.get $1 + local.get $4 i32.add - i32.load $0 - local.set $1 + i32.load8_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6768 + local.get $5 + i32.const 6576 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0651 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04100 + local.set $1 + br $for-loop|0656 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53687,125 +54212,125 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint32Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + call $~lib/typedarray/Int16Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6800 + i32.const 6608 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0102 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0662 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6800 + local.get $5 + i32.const 6608 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0102 + local.set $1 + br $for-loop|0662 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0665 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 6640 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 - local.set $12 - local.get $4 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|04103 - local.get $2 - local.get $12 - i32.gt_s + local.set $3 + loop $for-loop|0670 + local.get $1 + local.get $3 + i32.lt_s if - local.get $3 - local.get $12 - i32.const 2 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load $0 - local.set $1 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $1 - local.get $12 - local.get $4 - i32.const 6832 + local.get $5 + i32.const 6640 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0665 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04103 + local.set $1 + br $for-loop|0670 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53817,125 +54342,125 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6864 + i32.const 6672 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|0104 + local.set $3 + loop $for-loop|0676 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $12 - local.get $3 - i32.const 6864 + local.get $2 + local.get $1 + local.get $5 + i32.const 6672 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0104 + local.set $1 + br $for-loop|0676 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0679 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6896 + i32.const 6704 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|04105 + local.set $3 + loop $for-loop|0684 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 1 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $12 - local.get $3 - i32.const 6896 + local.get $2 + local.get $1 + local.get $5 + i32.const 6704 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0679 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04105 + local.set $1 + br $for-loop|0684 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53947,125 +54472,125 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + i32.const 6 + call $~lib/typedarray/Int32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 6736 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0107 + local.set $3 + loop $for-loop|0690 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $12 - local.get $3 - i32.const 6928 + local.get $2 + local.get $1 + local.get $5 + i32.const 6736 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0107 + local.set $1 + br $for-loop|0690 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0693 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6960 + i32.const 6768 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|04108 + local.set $3 + loop $for-loop|0698 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 3 + local.get $4 + local.get $1 + i32.const 2 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $12 - local.get $3 - i32.const 6960 + local.get $2 + local.get $1 + local.get $5 + i32.const 6768 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0693 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04108 + local.set $1 + br $for-loop|0698 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54077,125 +54602,125 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 i32.store $0 - local.get $3 + local.get $5 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $5 i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $5 i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 6992 + i32.const 6800 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0109 + local.set $3 + loop $for-loop|0704 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 + local.get $4 + local.get $1 i32.const 2 i32.shl i32.add - f32.load $0 - local.set $6 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $12 - local.get $3 - i32.const 6992 + local.get $2 + local.get $1 + local.get $5 + i32.const 6800 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0109 + local.set $1 + br $for-loop|0704 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0707 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6832 i32.store $0 offset=4 - local.get $3 + local.get $5 i32.load $0 offset=4 - local.set $2 + local.set $4 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|04110 + local.set $3 + loop $for-loop|0712 local.get $1 - local.get $12 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $2 - local.get $12 + local.get $4 + local.get $1 i32.const 2 i32.shl i32.add - f32.load $0 - local.set $6 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $12 - local.get $3 - i32.const 7024 + local.get $2 + local.get $1 + local.get $5 + i32.const 6832 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0707 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04110 + local.set $1 + br $for-loop|0712 end end i32.const 1 end - br_if $folding-inner30 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54207,529 +54732,517 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 - local.get $3 + local.get $4 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $4 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i64.const 6 + call $~lib/typedarray/Int64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 7056 + i32.const 6864 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0112 + local.set $2 + loop $for-loop|0718 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $8 - local.get $12 - local.get $3 - i32.const 7056 + local.get $11 + local.get $1 + local.get $4 + i32.const 6864 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0112 + local.set $1 + br $for-loop|0718 end end i32.const 1 end i32.eqz - br_if $folding-inner29 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0721 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 7088 + i32.const 6896 i32.store $0 offset=4 - local.get $3 + local.get $4 i32.load $0 offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $12 - local.get $3 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|04113 + local.set $2 + loop $for-loop|0726 local.get $1 - local.get $12 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $1 i32.const 3 i32.shl i32.add - f64.load $0 - local.set $8 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $8 - local.get $12 - local.get $3 - i32.const 7088 + local.get $11 + local.get $1 + local.get $4 + i32.const 6896 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0721 drop - local.get $12 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|04113 - end - end - i32.const 1 - end - br_if $folding-inner30 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store $0 - local.get $1 - i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $1 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $5 - i32.store $0 - local.get $5 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store $0 offset=8 - local.get $5 - i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $1 - local.get $5 - i32.load $0 offset=8 - local.set $3 - loop $for-loop|0116 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $4 - i32.add - i32.load8_s $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $1 - local.get $5 - i32.const 7200 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0116 + local.set $1 + br $for-loop|0726 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 + br_if $folding-inner13 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 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 - i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 i32.store $0 - local.get $5 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 7152 + local.get $4 i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 1 - i32.const 7152 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 2 - i32.const 7152 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $4 i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store $0 offset=8 - local.get $5 - i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $1 - local.get $5 - i32.load $0 offset=8 - local.set $3 - loop $for-loop|0121 - local.get $1 - local.get $3 - i32.lt_s - if + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0732 local.get $1 - local.get $4 - i32.add - i32.load8_u $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $11 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $11 + local.get $1 + local.get $4 + i32.const 6928 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0732 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0735 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0740 local.get $1 - local.get $5 - i32.const 7232 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0121 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $11 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $11 + local.get $1 + local.get $4 + i32.const 6960 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0735 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0740 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 + br_if $folding-inner13 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 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 - i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 i32.store $0 - local.get $5 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 7152 + local.get $4 i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 1 - i32.const 7152 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $4 i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 2 - i32.const 7152 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $4 i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store $0 offset=8 - local.get $5 - i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $1 - local.get $5 - i32.load $0 offset=8 - local.set $3 - loop $for-loop|0128 - local.get $1 - local.get $3 - i32.lt_s - if + f32.const 6 + call $~lib/typedarray/Float32Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0746 local.get $1 - local.get $4 - i32.add - i32.load8_u $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.set $6 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $6 + local.get $1 + local.get $4 + i32.const 6992 + i32.load $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0746 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0749 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0754 local.get $1 - local.get $5 - i32.const 7264 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0128 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.set $6 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $6 + local.get $1 + local.get $4 + i32.const 7024 + i32.load $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0749 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0754 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 + br_if $folding-inner13 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 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store $0 local.get $1 - i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 i32.store $0 - local.get $5 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 7152 + local.get $4 i32.const 0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 1 - i32.const 7152 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $4 i32.const 1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 2 - i32.const 7152 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $4 i32.const 2 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store $0 offset=8 - local.get $5 - i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $1 - local.get $5 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0133 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $4 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0760 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $1 + local.get $4 + i32.const 7056 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0760 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0763 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store $0 offset=4 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0768 local.get $1 - local.get $5 - i32.const 7296 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0133 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $1 + local.get $4 + i32.const 7088 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0763 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0768 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 + br_if $folding-inner13 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 @@ -54739,7 +55252,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -54751,7 +55264,7 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $5 i32.store $0 local.get $5 @@ -54764,9 +55277,8 @@ i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54775,9 +55287,8 @@ i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54786,11 +55297,10 @@ i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7200 i32.store $0 offset=8 local.get $5 i32.load $0 offset=4 @@ -54799,40 +55309,36 @@ local.set $1 local.get $5 i32.load $0 offset=8 - i32.const 1 - i32.shr_u local.set $3 - loop $for-loop|0138 + loop $for-loop|0774 local.get $1 local.get $3 i32.lt_s if - local.get $4 local.get $1 - i32.const 1 - i32.shl + local.get $4 i32.add - i32.load16_u $0 + i32.load8_s $0 local.set $2 i32.const 3 global.set $~argumentsLength local.get $2 local.get $1 local.get $5 - i32.const 7328 + i32.const 7200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0138 + br $for-loop|0774 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -54844,7 +55350,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -54856,7 +55362,7 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $5 i32.store $0 local.get $5 @@ -54869,7 +55375,9 @@ i32.const 7152 i32.const 0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54878,7 +55386,9 @@ i32.const 7152 i32.const 1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54887,9 +55397,11 @@ i32.const 7152 i32.const 2 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7360 + i32.const 7232 i32.store $0 offset=8 local.get $5 i32.load $0 offset=4 @@ -54898,40 +55410,36 @@ local.set $1 local.get $5 i32.load $0 offset=8 - i32.const 2 - i32.shr_u local.set $3 - loop $for-loop|0143 + loop $for-loop|0780 local.get $1 local.get $3 i32.lt_s if - local.get $4 local.get $1 - i32.const 2 - i32.shl + local.get $4 i32.add - i32.load $0 + i32.load8_u $0 local.set $2 i32.const 3 global.set $~argumentsLength local.get $2 local.get $1 local.get $5 - i32.const 7360 + i32.const 7232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0143 + br $for-loop|0780 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -54943,7 +55451,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -54955,7 +55463,7 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 i32.store $0 local.get $5 @@ -54968,7 +55476,9 @@ i32.const 7152 i32.const 0 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54977,7 +55487,9 @@ i32.const 7152 i32.const 1 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 @@ -54986,9 +55498,11 @@ i32.const 7152 i32.const 2 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 7392 + i32.const 7264 i32.store $0 offset=8 local.get $5 i32.load $0 offset=4 @@ -54997,40 +55511,36 @@ local.set $1 local.get $5 i32.load $0 offset=8 - i32.const 2 - i32.shr_u local.set $3 - loop $for-loop|0148 + loop $for-loop|0788 local.get $1 local.get $3 i32.lt_s if - local.get $4 local.get $1 - i32.const 2 - i32.shl + local.get $4 i32.add - i32.load $0 + i32.load8_u $0 local.set $2 i32.const 3 global.set $~argumentsLength local.get $2 local.get $1 local.get $5 - i32.const 7392 + i32.const 7264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0148 + br $for-loop|0788 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55042,7 +55552,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -55054,187 +55564,85 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 7296 i32.store $0 offset=8 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0153 + local.set $3 + loop $for-loop|0794 local.get $1 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.set $10 - i32.const 3 - global.set $~argumentsLength - local.get $10 - local.get $1 local.get $4 - i32.const 7424 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_none) local.get $1 i32.const 1 - i32.add - local.set $1 - br $for-loop|0153 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store $0 - local.get $1 - i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - i32.store $0 - local.get $4 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store $0 offset=8 - local.get $4 - i32.load $0 offset=4 - local.set $3 - i32.const 0 - local.set $1 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.set $2 - loop $for-loop|0158 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 3 i32.shl i32.add - i64.load $0 - local.set $10 + i32.load16_s $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $10 + local.get $2 local.get $1 - local.get $4 - i32.const 7456 + local.get $5 + i32.const 7296 i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_none) + call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0158 + br $for-loop|0794 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55246,7 +55654,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -55258,85 +55666,88 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7488 + i32.const 7328 i32.store $0 offset=8 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load $0 offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0163 + local.set $3 + loop $for-loop|0800 local.get $1 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 + local.get $4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - f32.load $0 - local.set $6 + i32.load16_u $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $2 local.get $1 - local.get $4 - i32.const 7488 + local.get $5 + i32.const 7328 i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_none) + call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0163 + br $for-loop|0800 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55348,7 +55759,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -55360,608 +55771,595 @@ global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 i32.store $0 - local.get $4 + local.get $5 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $4 + local.get $5 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7520 + i32.const 7360 i32.store $0 offset=8 - local.get $4 + local.get $5 i32.load $0 offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load $0 offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0168 + local.set $3 + loop $for-loop|0806 local.get $1 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 + local.get $4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load $0 - local.set $8 + i32.load $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $8 + local.get $2 local.get $1 - local.get $4 - i32.const 7520 + local.get $5 + i32.const 7360 i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_none) + call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0168 + br $for-loop|0806 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner6 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 7616 - i32.store $0 + i64.const 0 + i64.store $0 local.get $1 - i32.const 7628 - i32.load $0 - local.tee $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|0171 - local.get $3 - local.get $12 - i32.gt_s - if - local.get $2 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $1 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|0171 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $12 - i32.gt_s - if - local.get $2 - local.get $12 - call $~lib/typedarray/Int8Array#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - i32.extend8_s - i32.ne - br_if $folding-inner7 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=12 - local.get $2 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $1 - i32.store $0 offset=16 - local.get $1 + i32.store $0 offset=8 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner10 + global.set $std/typedarray/forEachCallCount local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 + i32.store $0 + local.get $5 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $5 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 + i32.const 7152 + i32.store $0 offset=4 + local.get $5 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 7616 - i32.store $0 - local.get $1 - i32.const 7628 - i32.load $0 - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + i32.const 7152 i32.store $0 offset=4 + local.get $5 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + i32.const 7392 i32.store $0 offset=8 + local.get $5 + i32.load $0 offset=4 + local.set $4 i32.const 0 - local.set $12 - loop $for-loop|02136 + local.set $1 + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0812 + local.get $1 local.get $3 - local.get $12 - i32.gt_s + i32.lt_s if - local.get $2 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + local.get $4 local.get $1 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $12 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $12 - br $for-loop|02136 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $12 - loop $for-loop|124 - local.get $3 - local.get $12 - i32.gt_s - if + i32.load $0 + local.set $2 + i32.const 3 + global.set $~argumentsLength local.get $2 - local.get $12 - call $~lib/typedarray/Uint8Array#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner7 - local.get $12 + local.get $1 + local.get $5 + i32.const 7392 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|124 + local.set $1 + br $for-loop|0812 end end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=12 - local.get $2 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $1 - i32.store $0 offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner10 - local.get $1 + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 + i64.const 0 + i64.store $0 + local.get $1 i32.const 0 - i32.const 20 - memory.fill $0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount local.get $1 - i32.const 7616 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 - local.get $1 - i32.const 7628 - i32.load $0 - local.tee $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7424 i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 i32.const 0 - local.set $12 - loop $for-loop|029 - local.get $3 - local.get $12 - i32.gt_s - if - local.get $2 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|029 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $12 - loop $for-loop|132 - local.get $3 - local.get $12 - i32.gt_s - if - local.get $2 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner7 - local.get $12 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0818 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $1 + local.get $4 + i32.const 7424 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|132 + local.set $1 + br $for-loop|0818 end end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=12 - local.get $2 - local.get $1 - call $~lib/typedarray/Int8Array#reverse local.tee $1 - i32.store $0 offset=16 + i64.const 0 + i64.store $0 local.get $1 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - br_if $folding-inner8 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount local.get $1 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - br_if $folding-inner9 - local.get $1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.ne - br_if $folding-inner10 - local.get $1 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0824 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $1 + local.get $4 + i32.const 7456 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0824 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 + i64.const 0 + i64.store $0 + local.get $1 i32.const 0 - i32.const 20 - memory.fill $0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount local.get $1 - i32.const 7616 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 i32.store $0 - local.get $1 - i32.const 7628 - i32.load $0 - local.tee $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7488 i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 i32.const 0 - local.set $12 - loop $for-loop|037175 - local.get $3 - local.get $12 - i32.gt_s + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0830 + local.get $1 + local.get $2 + i32.lt_s if - local.get $2 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + local.get $3 local.get $1 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $12 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $12 - br $for-loop|037175 - end - end - local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $12 - loop $for-loop|140 - local.get $3 - local.get $12 - i32.gt_s - if - local.get $2 - local.get $12 - call $~lib/typedarray/Int16Array#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - i32.extend16_s - i32.ne - br_if $folding-inner7 - local.get $12 + f32.load $0 + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + local.get $1 + local.get $4 + i32.const 7488 + i32.load $0 + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|140 + local.set $1 + br $for-loop|0830 end end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $1 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=12 - local.get $2 - local.get $1 - call $~lib/typedarray/Int16Array#reverse local.tee $1 - i32.store $0 offset=16 + i64.const 0 + i64.store $0 local.get $1 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner8 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount local.get $1 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner9 - local.get $1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner10 - local.get $1 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $2 + loop $for-loop|0836 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $10 + local.get $1 + local.get $4 + i32.const 7520 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0836 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -55969,130 +56367,128 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 7616 i32.store $0 - local.get $1 + local.get $2 i32.const 7628 i32.load $0 - local.tee $3 - call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + call $~lib/typedarray/Int8Array#constructor local.tee $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|045114 - local.get $3 - local.get $12 - i32.gt_s + loop $for-loop|05 + local.get $1 + local.get $4 + i32.lt_s if local.get $2 - local.get $12 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 local.get $1 - local.get $12 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $12 + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|045114 + local.set $1 + br $for-loop|05 end end local.get $2 - call $~lib/typedarray/Int16Array#reverse + call $~lib/typedarray/Int8Array#reverse drop i32.const 0 - local.set $12 - loop $for-loop|148 - local.get $3 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|1 + local.get $1 + local.get $4 + i32.lt_s if local.get $2 - local.get $12 - call $~lib/typedarray/Uint16Array#__get + local.get $1 + call $~lib/typedarray/Int8Array#__get i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub - local.get $12 + local.get $1 i32.sub call $~lib/array/Array#__get - i32.const 65535 - i32.and + i32.extend8_s i32.ne - br_if $folding-inner7 - local.get $12 + br_if $folding-inner24 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|148 + local.set $1 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer local.set $2 - local.get $1 + local.get $3 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint16Array#subarray + call $~lib/typedarray/Int8Array#subarray local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store $0 offset=12 local.get $2 local.get $1 - call $~lib/typedarray/Int16Array#reverse + call $~lib/typedarray/Int8Array#reverse local.tee $1 i32.store $0 offset=16 local.get $1 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne - br_if $folding-inner8 + br_if $folding-inner25 local.get $1 i32.const 1 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne - br_if $folding-inner9 + br_if $folding-inner26 local.get $1 i32.const 2 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne - br_if $folding-inner10 + br_if $folding-inner27 local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56100,232 +56496,130 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 7616 i32.store $0 - local.get $1 + local.get $2 i32.const 7628 i32.load $0 - local.tee $11 - call $~lib/typedarray/Int32Array#constructor - local.tee $9 + local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|053115 - local.get $11 - local.get $12 - i32.gt_s + loop $for-loop|0633 + local.get $1 + local.get $4 + i32.lt_s if - local.get $9 - local.get $12 + local.get $2 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $7 - local.get $12 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $12 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|053115 + local.set $1 + br $for-loop|0633 end end + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - local.set $12 - local.get $9 - i32.load $0 offset=4 - local.set $5 - local.get $9 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shr_u - local.set $4 + local.set $1 + loop $for-loop|17 local.get $1 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0 - local.get $4 - local.get $12 - i32.gt_u - if - local.get $5 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 - local.set $2 - local.get $1 - local.get $5 - local.get $3 - local.get $12 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 - i32.store $0 - local.get $1 - local.get $2 - i32.store $0 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $12 - loop $for-loop|156 - local.get $11 - local.get $12 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $9 - local.get $12 - call $~lib/typedarray/Int32Array#__get + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get i32.const 7616 - local.get $11 + local.get $4 i32.const 1 i32.sub - local.get $12 + local.get $1 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne - br_if $folding-inner7 - local.get $12 + br_if $folding-inner24 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|156 + local.set $1 + br $for-loop|17 end end global.get $~lib/memory/__stack_pointer - local.set $11 - local.get $7 - i32.const 4 + local.set $2 + local.get $3 i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $9 + call $~lib/typedarray/Uint8Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.store $0 offset=12 - i32.const 0 - local.set $1 - local.get $9 - i32.load $0 offset=4 - local.set $7 - local.get $9 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.gt_u - if - local.get $2 - i32.const 1 - i32.shr_u - local.set $5 - local.get $2 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0117 - local.get $1 - local.get $5 - i32.lt_u - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $2 - i32.load $0 - local.set $3 - local.get $2 - local.get $7 - local.get $4 - local.get $1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $2 - i32.load $0 - i32.store $0 - local.get $2 - local.get $3 - i32.store $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0117 - end - end - end - local.get $11 - local.get $9 + local.get $2 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $1 i32.store $0 offset=16 - local.get $9 + local.get $1 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.ne - br_if $folding-inner8 - local.get $9 + br_if $folding-inner25 + local.get $1 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.ne - br_if $folding-inner9 - local.get $9 + br_if $folding-inner26 + local.get $1 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.ne - br_if $folding-inner10 - local.get $9 + br_if $folding-inner27 + local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56333,231 +56627,130 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 7616 i32.store $0 - local.get $1 + local.get $2 i32.const 7628 i32.load $0 - local.tee $11 - call $~lib/typedarray/Uint32Array#constructor - local.tee $9 + local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/typedarray/Uint32Array#constructor - local.tee $7 - i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|061 - local.get $11 - local.get $12 - i32.gt_s - if - local.get $9 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $7 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|061 - end - end - i32.const 0 - local.set $12 - local.get $9 - i32.load $0 offset=4 - local.set $5 - local.get $9 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shr_u - local.set $4 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0119 - local.get $4 - local.get $12 - i32.gt_u - if - local.get $5 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 - local.set $2 - local.get $1 - local.get $5 - local.get $3 - local.get $12 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 - i32.store $0 - local.get $1 - local.get $2 - i32.store $0 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $while-continue|0119 - end + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store $0 offset=8 + loop $for-loop|08 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 7616 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $1 + i32.const 7616 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|08 end end + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - local.set $12 - loop $for-loop|164 - local.get $11 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|19 + local.get $1 + local.get $4 + i32.lt_s if - local.get $9 - local.get $12 - call $~lib/typedarray/Uint32Array#__get + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 - local.get $11 + local.get $4 i32.const 1 i32.sub - local.get $12 + local.get $1 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne - br_if $folding-inner7 - local.get $12 + br_if $folding-inner24 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|164 + local.set $1 + br $for-loop|19 end end global.get $~lib/memory/__stack_pointer - local.set $11 - local.get $7 + local.set $2 + local.get $3 i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.store $0 offset=12 - i32.const 0 - local.set $1 - local.get $9 - i32.load $0 offset=4 - local.set $7 - local.get $9 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.gt_u - if - local.get $2 - i32.const 1 - i32.shr_u - local.set $5 - local.get $2 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0121 - local.get $1 - local.get $5 - i32.lt_u - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $2 - i32.load $0 - local.set $3 - local.get $2 - local.get $7 - local.get $4 - local.get $1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $2 - i32.load $0 - i32.store $0 - local.get $2 - local.get $3 - i32.store $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0121 - end - end - end - local.get $11 - local.get $9 + local.get $2 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $1 i32.store $0 offset=16 - local.get $9 + local.get $1 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.ne - br_if $folding-inner8 - local.get $9 + br_if $folding-inner25 + local.get $1 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.ne - br_if $folding-inner9 - local.get $9 + br_if $folding-inner26 + local.get $1 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.ne - br_if $folding-inner10 - local.get $9 + br_if $folding-inner27 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.ne - br_if $folding-inner11 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56565,234 +56758,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 7616 i32.store $0 - local.get $1 + local.get $2 i32.const 7628 i32.load $0 - local.tee $9 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|069 - local.get $9 - local.get $12 - i32.gt_s + loop $for-loop|010 + local.get $1 + local.get $4 + i32.lt_s if - local.get $7 - local.get $12 + local.get $2 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $5 - local.get $12 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $12 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|069 + local.set $1 + br $for-loop|010 end end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $12 - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $1 - i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shr_u - local.set $3 + local.set $1 + loop $for-loop|111 local.get $1 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0122 - local.get $3 - local.get $12 - i32.gt_u - if - local.get $4 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load $0 - local.set $10 - local.get $1 - local.get $4 - local.get $2 - local.get $12 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load $0 - i64.store $0 - local.get $1 - local.get $10 - i64.store $0 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $while-continue|0122 - end - end - end - i32.const 0 - local.set $12 - loop $for-loop|172 - local.get $9 - local.get $12 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $7 - local.get $12 - call $~lib/typedarray/Int64Array#__get + local.get $2 + local.get $1 + call $~lib/typedarray/Int16Array#__get i32.const 7616 - local.get $9 + local.get $4 i32.const 1 i32.sub - local.get $12 + local.get $1 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner7 - local.get $12 + i32.extend16_s + i32.ne + br_if $folding-inner24 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|172 + local.set $1 + br $for-loop|111 end end global.get $~lib/memory/__stack_pointer - local.set $9 - local.get $5 + local.set $2 + local.get $3 i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $7 + call $~lib/typedarray/Int16Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store $0 offset=12 - i32.const 0 - local.set $1 - local.get $7 - i32.load $0 offset=4 - local.set $5 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 1 - i32.gt_u - if - local.get $2 - i32.const 1 - i32.shr_u - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0124 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i64.load $0 - local.set $10 - local.get $2 - local.get $5 - local.get $3 - local.get $1 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $2 - i64.load $0 - i64.store $0 - local.get $2 - local.get $10 - i64.store $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0124 - end - end - end - local.get $9 - local.get $7 + local.get $2 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $1 i32.store $0 offset=16 - local.get $7 + local.get $1 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner8 - local.get $7 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner25 + local.get $1 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner9 - local.get $7 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner26 + local.get $1 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner10 - local.get $7 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner27 + local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner11 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56800,948 +56886,811 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 7616 i32.store $0 - local.get $1 + local.get $2 i32.const 7628 i32.load $0 - local.tee $9 - call $~lib/typedarray/Uint64Array#constructor - local.tee $7 + local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|077125 - local.get $9 - local.get $12 - i32.gt_s + loop $for-loop|01234 + local.get $1 + local.get $4 + i32.lt_s if - local.get $7 - local.get $12 + local.get $2 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $5 - local.get $12 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $1 i32.const 7616 - local.get $12 + local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $12 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|077125 + local.set $1 + br $for-loop|01234 end end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $12 - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u + local.set $1 + loop $for-loop|113 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $1 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner24 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|113 + end + end + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=12 + local.get $2 + local.get $1 + call $~lib/typedarray/Int16Array#reverse local.tee $1 + i32.store $0 offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner25 + local.get $1 i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner26 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner27 + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner28 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store $0 offset=80 + local.get $4 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $4 + i32.load $0 offset=8 + i32.const 3 i32.shr_u - local.set $3 - local.get $1 - i32.const 1 - i32.sub + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $4 + i32.load $0 offset=4 local.set $2 - loop $while-continue|0127 + loop $while-continue|0 + local.get $0 local.get $3 - local.get $12 - i32.gt_u + i32.lt_s if - local.get $4 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load $0 - local.set $10 - local.get $1 - local.get $4 local.get $2 - local.get $12 - i32.sub + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add - local.tee $1 - i64.load $0 - i64.store $0 + f64.load $0 + f64.const nan:0x8000000000000 + f64.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $1 - local.get $10 - i64.store $0 - local.get $12 i32.const 1 i32.add - local.set $12 - br $while-continue|0127 + local.set $0 + br $while-continue|0 end end + i32.const -1 + local.set $1 end - i32.const 0 - local.set $12 - loop $for-loop|180 - local.get $9 - local.get $12 - i32.gt_s - if - local.get $7 - local.get $12 - call $~lib/typedarray/Uint64Array#__get - i32.const 7616 - local.get $9 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner7 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|180 - end - end - global.get $~lib/memory/__stack_pointer - local.set $9 - local.get $5 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=12 - i32.const 0 - local.set $1 - local.get $7 - i32.load $0 offset=4 - local.set $5 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 1 - i32.gt_u + local.get $1 + i32.const -1 + i32.ne if - local.get $2 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i32.const 0 + local.set $1 + i32.const 0 + local.get $4 + i32.load $0 offset=8 + i32.const 3 i32.shr_u - local.set $4 + local.tee $2 + i32.eqz local.get $2 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0129 + i32.eqz + i32.or + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $4 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|014 local.get $1 - local.get $4 - i32.lt_u + local.get $2 + i32.lt_s if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i64.load $0 - local.set $10 - local.get $2 - local.get $5 - local.get $3 + i32.const 1 + local.get $0 local.get $1 - i32.sub i32.const 3 i32.shl i32.add - local.tee $2 - i64.load $0 - i64.store $0 - local.get $2 + f64.load $0 + local.tee $10 local.get $10 - i64.store $0 + f64.ne + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + drop local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|0129 + br $while-continue|014 end end + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 654 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $9 - local.get $7 - i32.store $0 offset=16 - local.get $7 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner8 - local.get $7 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner9 - local.get $7 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner10 - local.get $7 - i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 7616 - i32.store $0 - local.get $1 - i32.const 7628 - i32.load $0 - local.tee $9 - call $~lib/typedarray/Float32Array#constructor - local.tee $7 - i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $5 - i32.store $0 offset=8 + local.tee $4 + i32.store $0 offset=84 + local.get $4 i32.const 0 - local.set $12 - loop $for-loop|085 - local.get $9 - local.get $12 - i32.gt_s - if - local.get $7 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $5 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|085 - end - end + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $12 - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $1 - i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $4 + i32.load $0 offset=8 + i32.const 2 i32.shr_u - local.set $3 - local.get $1 - i32.const 1 - i32.sub + local.tee $3 + i32.eqz + local.get $3 + i32.const 0 + i32.le_s + i32.or + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $4 + i32.load $0 offset=4 local.set $2 - loop $while-continue|0130 + loop $while-continue|015 + local.get $0 local.get $3 - local.get $12 - i32.gt_u + i32.lt_s if - local.get $4 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load $0 - local.set $6 - local.get $1 - local.get $4 local.get $2 - local.get $12 - i32.sub + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add - local.tee $1 f32.load $0 - f32.store $0 + f32.const nan:0x400000 + f32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $1 - local.get $6 - f32.store $0 - local.get $12 i32.const 1 i32.add - local.set $12 - br $while-continue|0130 + local.set $0 + br $while-continue|015 end end + i32.const -1 + local.set $1 end - i32.const 0 - local.set $12 - loop $for-loop|188 - local.get $9 - local.get $12 - i32.gt_s - if - local.get $7 - local.get $12 - call $~lib/typedarray/Float32Array#__get - i32.const 7616 - local.get $9 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - br_if $folding-inner7 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|188 - end - end - global.get $~lib/memory/__stack_pointer - local.set $9 - local.get $5 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=12 - i32.const 0 - local.set $1 - local.get $7 - i32.load $0 offset=4 - local.set $5 - local.get $7 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.gt_u + local.get $1 + i32.const -1 + i32.ne if - local.get $2 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i32.const 0 + local.set $1 + i32.const 0 + local.get $4 + i32.load $0 offset=8 + i32.const 2 i32.shr_u - local.set $4 + local.tee $2 + i32.eqz local.get $2 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0132 + i32.eqz + i32.or + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $4 + i32.load $0 offset=4 + local.set $0 + loop $while-continue|0845 local.get $1 - local.get $4 - i32.lt_u + local.get $2 + i32.lt_s if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $2 - f32.load $0 - local.set $6 - local.get $2 - local.get $5 - local.get $3 + i32.const 1 + local.get $0 local.get $1 - i32.sub i32.const 2 i32.shl i32.add - local.tee $2 f32.load $0 - f32.store $0 - local.get $2 + local.tee $6 local.get $6 - f32.store $0 + f32.ne + br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + drop local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|0132 + br $while-continue|0845 end end + i32.const 0 end - local.get $9 - local.get $7 - i32.store $0 offset=16 - local.get $7 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store $0 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store $0 offset=12 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - br_if $folding-inner8 - local.get $7 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - br_if $folding-inner9 - local.get $7 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne - br_if $folding-inner10 - local.get $7 i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - br_if $folding-inner11 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 9584 + i32.store $0 offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + local.get $1 + call $~lib/typedarray/Uint8Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store $0 offset=4 + local.get $0 + i32.const 9616 + i32.store $0 offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $1 + i32.store $0 + local.get $1 i32.const 0 - i32.const 20 - memory.fill $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $1 - i32.const 7616 - i32.store $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $1 - i32.const 7628 - i32.load $0 - local.tee $9 - call $~lib/typedarray/Float64Array#constructor - local.tee $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store $0 offset=12 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Float64Array#constructor - local.tee $5 + i32.const 9616 i32.store $0 offset=8 - i32.const 0 - local.set $12 - loop $for-loop|093 - local.get $9 - local.get $12 - i32.gt_s - if - local.get $7 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $5 - local.get $12 - i32.const 7616 - local.get $12 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|093 - end - end - i32.const 0 - local.set $12 - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $1 - i32.const 1 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shr_u - local.set $3 - local.get $1 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0133 - local.get $3 - local.get $12 - i32.gt_u - if - local.get $4 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load $0 - local.set $8 - local.get $1 - local.get $4 - local.get $2 - local.get $12 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load $0 - f64.store $0 - local.get $1 - local.get $8 - f64.store $0 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $while-continue|0133 - end - end - end - i32.const 0 - local.set $12 - loop $for-loop|196 - local.get $9 - local.get $12 - i32.gt_s - if - local.get $7 - local.get $12 - call $~lib/typedarray/Float64Array#__get - i32.const 7616 - local.get $9 - i32.const 1 - i32.sub - local.get $12 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - br_if $folding-inner7 - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|196 - end - end + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + local.get $1 + call $~lib/typedarray/Uint8Array#toString + local.set $1 global.get $~lib/memory/__stack_pointer - local.set $9 - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $7 + local.tee $0 + local.get $1 + i32.store $0 offset=4 + local.get $0 + i32.const 9616 + i32.store $0 offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=12 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 + local.get $1 i32.const 0 - local.set $1 - local.get $7 - i32.load $0 offset=4 - local.set $5 - local.get $7 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $2 i32.const 1 - i32.gt_u - if - local.get $2 - i32.const 1 - i32.shr_u - local.set $4 - local.get $2 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0135 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $2 - f64.load $0 - local.set $8 - local.get $2 - local.get $5 - local.get $3 - local.get $1 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $2 - f64.load $0 - f64.store $0 - local.get $2 - local.get $8 - f64.store $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0135 - end - end - end - local.get $9 - local.get $7 - i32.store $0 offset=16 - local.get $7 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - br_if $folding-inner8 - local.get $7 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - br_if $folding-inner9 - local.get $7 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - br_if $folding-inner10 - local.get $7 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - br_if $folding-inner11 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add + i32.const 9584 + i32.store $0 offset=12 + local.get $1 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 - i32.store $0 offset=80 - local.get $4 + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set - i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.eqz - local.get $3 - i32.const 0 - i32.le_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 - i32.load $0 offset=4 - local.set $2 - loop $while-continue|0136 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.tee $1 - i32.const 3 - i32.shl - i32.add - f64.load $0 - f64.const nan:0x8000000000000 - f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0136 - end - end - i32.const -1 - local.set $1 - end + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 local.get $1 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 653 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - i32.const 0 - local.set $1 - i32.const 0 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.eqz - local.get $2 - i32.eqz - i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $4 - i32.load $0 offset=4 - local.set $0 - loop $while-continue|0137 - local.get $1 - local.get $2 - i32.lt_s - if - i32.const 1 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.tee $8 - local.get $8 - f64.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0137 - end - end - i32.const 0 - end + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 654 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + 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 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 - i32.store $0 offset=84 - local.get $4 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store $0 + local.get $1 i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store $0 offset=12 + local.get $1 + call $~lib/typedarray/Uint16Array#join local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.eqz - local.get $3 - i32.const 0 - i32.le_s - i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 - i32.load $0 offset=4 - local.set $2 - loop $while-continue|0138 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - i32.add - f32.load $0 - f32.const nan:0x400000 - f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0138 - end - end - i32.const -1 - local.set $1 - end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 local.get $1 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 659 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - i32.const 0 - local.set $1 - i32.const 0 - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.eqz - local.get $2 - i32.eqz - i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $4 - i32.load $0 offset=4 - local.set $0 - loop $while-continue|0101 - local.get $1 - local.get $2 - i32.lt_s - if - i32.const 1 - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.tee $6 - local.get $6 - f32.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0101 - end - end - i32.const 0 - end + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store $0 offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 660 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -57749,7 +57698,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57759,34 +57708,34 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 3 i32.const 4 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 4 i32.const 5 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Int8Array#join + call $~lib/typedarray/Int32Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -57798,7 +57747,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57806,7 +57755,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57815,7 +57764,7 @@ i32.const 9584 i32.store $0 local.get $1 - call $~lib/typedarray/Int8Array#join + call $~lib/typedarray/Int32Array#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -57831,7 +57780,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57843,7 +57792,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57853,34 +57802,34 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Uint32Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $1 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $1 i32.const 4 i32.const 5 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Uint8Array#join + call $~lib/typedarray/Uint32Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -57892,22 +57841,40 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 + br_if $folding-inner15 + 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 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 local.get $1 - i32.store $0 offset=4 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57919,7 +57886,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57929,34 +57896,34 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 1 + call $~lib/typedarray/Int64Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 2 + call $~lib/typedarray/Int64Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 4 + call $~lib/typedarray/Int64Array#__set local.get $1 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 5 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Uint8Array#join + call $~lib/typedarray/Int64Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -57968,22 +57935,40 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 + br_if $folding-inner15 + 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 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 local.get $1 - i32.store $0 offset=4 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57995,7 +57980,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58005,34 +57990,34 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set + i64.const 4 + call $~lib/typedarray/Uint64Array#__set local.get $1 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set + i64.const 5 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Int16Array#join + call $~lib/typedarray/Uint64Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -58044,7 +58029,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58052,7 +58037,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58061,7 +58046,7 @@ i32.const 9584 i32.store $0 local.get $1 - call $~lib/typedarray/Int16Array#join + call $~lib/typedarray/Uint64Array#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -58077,7 +58062,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58089,7 +58074,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58099,46 +58084,46 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set + f32.const 4 + call $~lib/typedarray/Float32Array#__set local.get $1 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set + f32.const 5 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Uint16Array#join + call $~lib/typedarray/Float32Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 + i32.const 10800 i32.store $0 offset=8 local.get $0 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58146,7 +58131,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58155,7 +58140,7 @@ i32.const 9584 i32.store $0 local.get $1 - call $~lib/typedarray/Uint16Array#join + call $~lib/typedarray/Float32Array#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -58165,13 +58150,13 @@ local.get $0 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 + i32.const 10800 i32.store $0 offset=8 local.get $0 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner13 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58183,7 +58168,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58193,140 +58178,198 @@ i64.store $0 offset=8 local.get $0 i32.const 5 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $1 i32.store $0 local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set + f64.const 1 + call $~lib/typedarray/Float64Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $1 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set + f64.const 5 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store $0 offset=12 local.get $1 - call $~lib/typedarray/Int32Array#join + call $~lib/typedarray/Float64Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 + i32.const 10800 i32.store $0 offset=8 local.get $0 - i32.const 9616 + i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner12 + br_if $folding-inner17 + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 9584 + i32.store $0 + local.get $1 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store $0 offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store $0 offset=88 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store $0 offset=92 + local.get $0 + i32.load $0 offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 737 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store $0 offset=88 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store $0 offset=92 + local.get $0 + i32.load $0 offset=8 + if + i32.const 0 + i32.const 1568 + i32.const 741 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 - i32.store $0 + i32.const 20 + memory.fill $0 local.get $0 - i32.const 9584 + i32.const 10928 i32.store $0 - local.get $1 - call $~lib/typedarray/Int32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10940 + i32.load $0 + local.tee $5 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 i32.store $0 offset=4 + loop $for-loop|036 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + i32.const 10928 + local.get $9 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|036 + end + end global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 i32.store $0 offset=8 + local.get $1 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 + local.get $4 + i32.load $0 offset=8 local.get $0 - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store $0 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 i32.store $0 offset=12 - local.get $1 - call $~lib/typedarray/Uint32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store $0 offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 + local.set $2 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58334,187 +58377,240 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 i32.store $0 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.set $1 local.get $0 - i32.const 9584 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 i32.store $0 + local.get $0 + local.get $3 + i32.store $0 + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 local.get $1 - call $~lib/typedarray/Uint32Array#join - local.set $0 + i32.store $0 offset=8 + local.get $0 + local.get $3 + i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store $0 offset=8 + local.get $2 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 + i32.store $0 offset=16 + i32.const 0 + local.set $9 + loop $for-loop|138 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $9 + call $~lib/typedarray/Int8Array#__get + i32.ne + br_if $folding-inner29 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|138 + end + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 + i32.const 0 + i32.const 20 + memory.fill $0 local.get $0 - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + i32.const 10928 i32.store $0 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store $0 offset=12 - local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10940 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store $0 offset=4 + i32.const 0 + local.set $1 + loop $for-loop|0865 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 10928 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0865 + end + end global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.tee $1 + local.get $2 + i32.load $0 + local.tee $0 i32.store $0 offset=8 + local.get $1 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store $0 + local.get $2 + i32.load $0 offset=8 local.get $0 - i32.const 9584 - i32.store $0 - local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=4 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store $0 offset=12 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store $0 offset=8 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store $0 offset=16 + i32.const 0 + local.set $1 + loop $for-loop|116 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + i32.ne + br_if $folding-inner29 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|116 + end + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 + i32.const 0 + i32.const 20 + memory.fill $0 local.get $0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + i32.const 10928 i32.store $0 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store $0 offset=12 - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10940 + i32.load $0 + local.tee $5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 i32.store $0 offset=4 + loop $for-loop|041 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + i32.const 10928 + local.get $9 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|041 + end + end global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 i32.store $0 offset=8 + local.get $1 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 + i32.sub + local.tee $0 + local.get $4 + i32.load $0 offset=8 + local.get $0 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58522,93 +58618,139 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 i32.store $0 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.set $1 + local.get $0 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 local.get $0 - i32.const 9584 + local.get $3 i32.store $0 - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end local.get $0 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 + local.get $1 i32.store $0 offset=8 local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 + local.get $3 + i32.store $0 offset=4 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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 + local.get $2 local.get $0 - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store $0 - local.get $1 + i32.store $0 offset=16 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set + local.set $9 + loop $for-loop|143 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $9 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.ne + br_if $folding-inner29 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|143 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store $0 offset=12 - local.get $1 - call $~lib/typedarray/Float32Array#join - local.set $0 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $0 + i32.const 10928 + i32.store $0 local.get $0 + i32.const 10940 + i32.load $0 + local.tee $5 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store $0 offset=4 + loop $for-loop|045 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + i32.const 10928 + local.get $9 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|045 + end + end global.get $~lib/memory/__stack_pointer - i32.const 10800 + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 i32.store $0 offset=8 + local.get $1 local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner14 + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 + i32.sub + local.tee $0 + local.get $4 + i32.load $0 offset=8 + local.get $0 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58616,93 +58758,142 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store $0 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.tee $1 + i32.const 1 + i32.and + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 local.get $0 - i32.const 9584 + local.get $3 i32.store $0 + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 local.get $1 - call $~lib/typedarray/Float32Array#join - local.set $0 + i32.store $0 offset=8 + local.get $0 + local.get $3 + i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store $0 offset=8 + local.get $2 local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner15 + i32.store $0 offset=16 + i32.const 0 + local.set $9 + loop $for-loop|147 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $9 + call $~lib/typedarray/Int16Array#__get + i32.ne + br_if $folding-inner29 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|147 + end + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 + i32.const 0 + i32.const 20 + memory.fill $0 local.get $0 - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + i32.const 10928 i32.store $0 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store $0 offset=12 - local.get $1 - call $~lib/typedarray/Float64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10940 + i32.load $0 + local.tee $5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store $0 offset=4 + loop $for-loop|049 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + i32.const 10928 + local.get $9 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|049 + end + end global.get $~lib/memory/__stack_pointer - i32.const 10800 + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 i32.store $0 offset=8 + local.get $1 local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner14 + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 + i32.sub + local.tee $0 + local.get $4 + i32.load $0 offset=8 + local.get $0 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58710,82 +58901,74 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store $0 - local.get $0 - i32.const 9584 - i32.store $0 - local.get $1 - call $~lib/typedarray/Float64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.tee $1 + i32.const 1 + i32.and + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + local.get $0 + local.get $3 + i32.store $0 + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end local.get $0 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 + local.get $1 i32.store $0 offset=8 local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner15 + local.get $3 + i32.store $0 offset=4 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 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store $0 offset=88 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $0 + i32.store $0 offset=16 i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store $0 offset=92 - local.get $0 - i32.load $0 offset=8 - if - i32.const 0 - i32.const 1568 - i32.const 737 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $9 + loop $for-loop|151 + local.get $5 + local.get $9 + i32.gt_s + if + local.get $4 + local.get $9 + call $~lib/typedarray/Uint16Array#__get + local.get $0 + local.get $9 + call $~lib/typedarray/Uint16Array#__get + i32.ne + br_if $folding-inner29 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|151 + end end global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store $0 offset=88 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store $0 offset=92 - local.get $0 - i32.load $0 offset=8 - if - i32.const 0 - i32.const 1568 - i32.const 741 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58793,7 +58976,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58806,28 +58989,25 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0107139 + loop $for-loop|053 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 + local.get $9 i32.const 10928 - local.get $12 + local.get $9 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $12 + call $~lib/typedarray/Int32Array#__set + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0107139 + local.set $9 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer @@ -58862,19 +59042,21 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store $0 local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 - local.set $1 - local.get $0 - i32.const 12 + local.tee $1 i32.const 3 + i32.and + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -58901,31 +59083,33 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1111 + local.set $9 + loop $for-loop|155 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 - call $~lib/typedarray/Int8Array#__get + local.get $9 + call $~lib/typedarray/Int32Array#__get local.get $0 - local.get $12 - call $~lib/typedarray/Int8Array#__get + local.get $9 + call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner19 - local.get $12 + br_if $folding-inner29 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|1111 + local.set $9 + br $for-loop|155 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58933,7 +59117,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58945,87 +59129,128 @@ local.get $0 i32.const 10940 i32.load $0 - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $1 - loop $for-loop|0116200 - local.get $1 - local.get $3 - i32.lt_s + loop $for-loop|057 + local.get $5 + local.get $9 + i32.gt_s if - local.get $2 - local.get $1 + local.get $4 + local.get $9 i32.const 10928 - local.get $1 + local.get $9 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $9 i32.const 1 i32.add - local.set $1 - br $for-loop|0116200 + local.set $9 + br $for-loop|057 end end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $4 i32.load $0 local.tee $0 i32.store $0 offset=8 local.get $1 local.get $0 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.load $0 i32.sub local.tee $0 - local.get $2 + local.get $4 i32.load $0 offset=8 local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $3 i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs + i32.store $0 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.tee $1 + i32.const 3 + i32.and + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $0 + i32.store $0 + local.get $0 + local.get $3 + i32.store $0 + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $0 + local.get $3 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $1 - loop $for-loop|1121 - local.get $1 - local.get $3 - i32.lt_s + local.set $9 + loop $for-loop|159 + local.get $5 + local.get $9 + i32.gt_s if - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get + local.get $4 + local.get $9 + call $~lib/typedarray/Uint32Array#__get local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get + local.get $9 + call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner19 - local.get $1 + br_if $folding-inner29 + local.get $9 i32.const 1 i32.add - local.set $1 - br $for-loop|1121 + local.set $9 + br $for-loop|159 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59033,7 +59258,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59046,29 +59271,26 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Uint8ClampedArray#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0126 + loop $for-loop|061 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 + local.get $9 i32.const 10928 - local.get $12 + local.get $9 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $12 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0126 + local.set $9 + br $for-loop|061 end end global.get $~lib/memory/__stack_pointer @@ -59103,19 +59325,21 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store $0 local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 - local.set $1 - local.get $0 + local.tee $1 + i32.const 7 + i32.and + br_if $folding-inner30 + global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 5 + i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -59142,31 +59366,33 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1131 + local.set $9 + loop $for-loop|163 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#__get + local.get $9 + call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.ne - br_if $folding-inner19 - local.get $12 + local.get $9 + call $~lib/typedarray/Int64Array#__get + i64.ne + br_if $folding-inner29 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|1131 + local.set $9 + br $for-loop|163 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59174,7 +59400,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59187,28 +59413,26 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0136 + loop $for-loop|065 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 + local.get $9 i32.const 10928 - local.get $12 + local.get $9 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $12 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0136 + local.set $9 + br $for-loop|065 end end global.get $~lib/memory/__stack_pointer @@ -59243,7 +59467,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59252,12 +59476,12 @@ i32.sub i32.load $0 offset=16 local.tee $1 - i32.const 1 + i32.const 7 i32.and - br_if $folding-inner20 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 6 + i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -59284,31 +59508,33 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1141 + local.set $9 + loop $for-loop|167 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 - call $~lib/typedarray/Int16Array#__get + local.get $9 + call $~lib/typedarray/Uint64Array#__get local.get $0 - local.get $12 - call $~lib/typedarray/Int16Array#__get - i32.ne - br_if $folding-inner19 - local.get $12 + local.get $9 + call $~lib/typedarray/Uint64Array#__get + i64.ne + br_if $folding-inner29 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|1141 + local.set $9 + br $for-loop|167 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59316,7 +59542,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59329,29 +59555,26 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0146 + loop $for-loop|069 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 + local.get $9 i32.const 10928 - local.get $12 + local.get $9 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $12 + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0146 + local.set $9 + br $for-loop|069 end end global.get $~lib/memory/__stack_pointer @@ -59386,7 +59609,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59395,12 +59618,12 @@ i32.sub i32.load $0 offset=16 local.tee $1 - i32.const 1 + i32.const 3 i32.and - br_if $folding-inner20 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 7 + i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -59427,31 +59650,33 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1151 + local.set $9 + loop $for-loop|171 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 - call $~lib/typedarray/Uint16Array#__get + local.get $9 + call $~lib/typedarray/Float32Array#__get local.get $0 - local.get $12 - call $~lib/typedarray/Uint16Array#__get - i32.ne - br_if $folding-inner19 - local.get $12 + local.get $9 + call $~lib/typedarray/Float32Array#__get + f32.ne + br_if $folding-inner29 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|1151 + local.set $9 + br $for-loop|171 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59459,7 +59684,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59472,27 +59697,26 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0156 + loop $for-loop|073 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 + local.get $9 i32.const 10928 - local.get $12 + local.get $9 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $12 + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0156 + local.set $9 + br $for-loop|073 end end global.get $~lib/memory/__stack_pointer @@ -59527,7 +59751,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59536,12 +59760,12 @@ i32.sub i32.load $0 offset=16 local.tee $1 - i32.const 3 + i32.const 7 i32.and - br_if $folding-inner20 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 8 + i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -59568,168 +59792,395 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1161 + local.set $9 + loop $for-loop|175 local.get $5 - local.get $12 + local.get $9 i32.gt_s if local.get $4 - local.get $12 - call $~lib/typedarray/Int32Array#__get + local.get $9 + call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $12 - call $~lib/typedarray/Int32Array#__get - i32.ne - br_if $folding-inner19 - local.get $12 + local.get $9 + call $~lib/typedarray/Float64Array#__get + f64.ne + br_if $folding-inner29 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|175 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + 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 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $9 + i32.store $0 + local.get $9 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $9 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $9 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store $0 offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $7 + i32.store $0 offset=8 + local.get $7 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $5 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + i32.const 0 + local.set $1 + i32.const 11020 + i32.load $0 + local.tee $4 + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $5 + i32.load $0 offset=4 + local.set $3 + i32.const 11012 + i32.load $0 + local.set $2 + loop $for-loop|0878 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + local.tee $0 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load $0 + f32.convert_i32_s + f32.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|1161 + local.set $1 + br $for-loop|0878 end end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14480 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $5 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 + i32.const 11088 + i32.store $0 offset=16 + local.get $5 + i32.const 11088 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14592 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 local.get $0 - i32.const 10928 - i32.store $0 + i32.store $0 offset=16 + local.get $5 local.get $0 - i32.const 10940 - i32.load $0 - local.tee $5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 - i32.store $0 offset=4 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $9 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.const 6 + i32.add + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $5 + i32.load $0 offset=4 + i32.const 24 + i32.add + local.set $1 + local.get $9 + i32.load $0 offset=4 + local.set $0 i32.const 0 - local.set $12 - loop $for-loop|0166 - local.get $5 - local.get $12 + local.set $9 + loop $for-loop|0887 + local.get $2 + local.get $9 i32.gt_s if - local.get $4 - local.get $12 - i32.const 10928 - local.get $12 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $12 + local.get $1 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load $0 + f32.convert_i64_s + f32.store $0 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|0166 + local.set $9 + br $for-loop|0887 end end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14656 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 local.get $0 - local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - local.tee $0 - local.get $4 - i32.load $0 offset=8 + i32.store $0 offset=16 + local.get $5 local.get $0 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $8 + i32.load $0 offset=8 local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $5 + i32.load $0 offset=4 local.set $2 + local.get $8 + i32.load $0 offset=4 + local.set $0 + i32.const 0 + local.set $1 + loop $for-loop|0896 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u $0 + f32.convert_i32_u + f32.store $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0896 + end + end + local.get $7 + i32.load $0 offset=8 i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.shr_u + local.tee $3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer + i32.add + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $5 + i32.load $0 offset=4 + i32.const 16 + i32.add + local.set $2 + local.get $7 + i32.load $0 offset=4 + local.set $0 i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - local.tee $1 - i32.const 3 - i32.and - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 + local.set $1 + loop $for-loop|0905 + local.get $1 local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + f32.convert_i32_s + f32.store $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0905 + end end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 + i32.const 11264 i32.store $0 offset=16 + i32.const 11276 + i32.load $0 + local.tee $3 + i32.const 7 + i32.add + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $5 + i32.load $0 offset=4 + i32.const 28 + i32.add + local.set $2 + i32.const 11268 + i32.load $0 + local.set $0 i32.const 0 - local.set $12 - loop $for-loop|1171 - local.get $5 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|0914 + local.get $1 + local.get $3 + i32.lt_s if - local.get $4 - local.get $12 - call $~lib/typedarray/Uint32Array#__get - local.get $0 - local.get $12 - call $~lib/typedarray/Uint32Array#__get - i32.ne - br_if $folding-inner19 - local.get $12 + local.get $2 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_s $0 + f32.convert_i32_s + f32.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|1171 + local.set $1 + br $for-loop|0914 end end + i32.const 10 + i32.const 2 + i32.const 61 + i32.const 14720 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $5 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -59741,578 +60192,400 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 i32.const 20 memory.fill $0 local.get $0 - i32.const 10928 - i32.store $0 - local.get $0 - i32.const 10940 - i32.load $0 - local.tee $5 + i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store $0 offset=4 + local.tee $8 + i32.store $0 + local.get $8 i32.const 0 - local.set $12 - loop $for-loop|0176 - local.get $5 - local.get $12 - i32.gt_s - if - local.get $4 - local.get $12 - i32.const 10928 - local.get $12 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $12 - i32.const 1 - i32.add - local.set $12 - br $for-loop|0176 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - local.tee $0 - local.get $4 - i32.load $0 offset=8 - local.get $0 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $8 i32.const 1 - global.set $~argumentsLength + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $8 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set 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 16628 - i32.lt_s - br_if $folding-inner22 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store $0 offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store $0 offset=8 + local.get $5 i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - local.tee $1 - i32.const 7 - i32.and - br_if $folding-inner20 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 + i32.const 11008 i32.store $0 offset=16 i32.const 0 - local.set $12 - loop $for-loop|1181 - local.get $5 - local.get $12 - i32.gt_s + local.set $1 + i32.const 11020 + i32.load $0 + local.tee $3 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + local.set $2 + i32.const 11012 + i32.load $0 + local.set $0 + loop $for-loop|0923 + local.get $1 + local.get $3 + i32.lt_s if - local.get $4 - local.get $12 - call $~lib/typedarray/Int64Array#__get + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add local.get $0 - local.get $12 - call $~lib/typedarray/Int64Array#__get - i64.ne - br_if $folding-inner19 - local.get $12 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load $0 + f64.convert_i32_s + f64.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|1181 + local.set $1 + br $for-loop|0923 end end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14784 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 local.get $0 - i32.const 10928 - i32.store $0 + i32.store $0 offset=16 + local.get $4 local.get $0 - i32.const 10940 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + i32.const 11100 i32.load $0 - local.tee $5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - i32.store $0 offset=4 + local.tee $3 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + i32.const 24 + i32.add + local.set $2 + i32.const 11092 + i32.load $0 + local.set $0 i32.const 0 - local.set $12 - loop $for-loop|0186 - local.get $5 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|0932 + local.get $1 + local.get $3 + i32.lt_s if - local.get $4 - local.get $12 - i32.const 10928 - local.get $12 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $12 + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load $0 + f64.promote_f32 + f64.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0186 + local.set $1 + br $for-loop|0932 end end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 14944 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 local.get $0 + i32.store $0 offset=16 local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - local.tee $0 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $8 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 6 + i32.add local.get $4 i32.load $0 offset=8 - local.get $0 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + i32.const 48 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer local.set $2 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer + local.get $8 + i32.load $0 offset=4 + local.set $1 i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - local.tee $1 - i32.const 7 - i32.and - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 + local.set $9 + loop $for-loop|0940 local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 - i32.store $0 offset=16 - i32.const 0 - local.set $12 - loop $for-loop|1191 - local.get $5 - local.get $12 + local.get $9 i32.gt_s if - local.get $4 - local.get $12 - call $~lib/typedarray/Uint64Array#__get + local.get $2 + local.get $9 + i32.const 3 + i32.shl + local.tee $0 + i32.add local.get $0 - local.get $12 - call $~lib/typedarray/Uint64Array#__get - i64.ne - br_if $folding-inner19 - local.get $12 + local.get $1 + i32.add + i64.load $0 + f64.convert_i64_s + f64.store $0 + local.get $9 i32.const 1 i32.add - local.set $12 - br $for-loop|1191 + local.set $9 + br $for-loop|0940 end end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 15056 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 local.get $0 - i32.const 10928 - i32.store $0 + i32.store $0 offset=16 + local.get $4 local.get $0 - i32.const 10940 - i32.load $0 - local.tee $5 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 - i32.store $0 offset=4 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $7 + i32.load $0 offset=8 + local.tee $3 + local.get $4 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + local.set $2 + local.get $7 + i32.load $0 offset=4 + local.set $0 i32.const 0 - local.set $12 - loop $for-loop|0196 - local.get $5 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|0949 + local.get $1 + local.get $3 + i32.lt_s if - local.get $4 - local.get $12 - i32.const 10928 - local.get $12 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $12 + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u $0 + f64.convert_i32_u + f64.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0196 + local.set $1 + br $for-loop|0949 end end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - local.tee $0 - local.get $4 + local.get $5 i32.load $0 offset=8 - local.get $0 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.shr_u + local.tee $3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - local.tee $1 + i32.add + local.get $4 + i32.load $0 offset=8 i32.const 3 - i32.and - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + i32.const 32 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 - i32.store $0 offset=16 + local.set $2 + local.get $5 + i32.load $0 offset=4 + local.set $0 i32.const 0 - local.set $12 - loop $for-loop|1201 - local.get $5 - local.get $12 - i32.gt_s + local.set $1 + loop $for-loop|0958 + local.get $1 + local.get $3 + i32.lt_s if - local.get $4 - local.get $12 - call $~lib/typedarray/Float32Array#__get + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add local.get $0 - local.get $12 - call $~lib/typedarray/Float32Array#__get - f32.ne - br_if $folding-inner19 - local.get $12 + local.get $1 i32.const 1 + i32.shl i32.add - local.set $12 - br $for-loop|1201 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $0 - i32.const 10928 - i32.store $0 - local.get $0 - i32.const 10940 - i32.load $0 - local.tee $5 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 - i32.store $0 offset=4 - i32.const 0 - local.set $12 - loop $for-loop|0206 - local.get $5 - local.get $12 - i32.gt_s - if - local.get $4 - local.get $12 - i32.const 10928 - local.get $12 - call $~lib/array/Array#__get + i32.load16_s $0 f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $12 + f64.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|0206 + local.set $1 + br $for-loop|0958 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $4 - i32.load $0 offset=4 - local.get $4 + i32.const 11264 + i32.store $0 offset=16 + i32.const 11276 i32.load $0 - i32.sub - local.tee $0 + local.tee $3 + i32.const 7 + i32.add local.get $4 i32.load $0 offset=8 - local.get $0 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner19 + local.get $4 + i32.load $0 offset=4 + i32.const 56 i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer local.set $2 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer + i32.const 11268 + i32.load $0 + local.set $0 i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - local.tee $1 - i32.const 7 - i32.and - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 + local.set $1 + loop $for-loop|0967 + local.get $1 local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 - i32.store $0 offset=16 - i32.const 0 - local.set $12 - loop $for-loop|1211 - local.get $5 - local.get $12 - i32.gt_s + i32.lt_s if - local.get $4 - local.get $12 - call $~lib/typedarray/Float64Array#__get + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add local.get $0 - local.get $12 - call $~lib/typedarray/Float64Array#__get - f64.ne - br_if $folding-inner19 - local.get $12 + local.get $1 + i32.add + i32.load8_s $0 + f64.convert_i32_s + f64.store $0 + local.get $1 i32.const 1 i32.add - local.set $12 - br $for-loop|1211 + local.set $1 + br $for-loop|0967 end end + i32.const 10 + i32.const 3 + i32.const 62 + i32.const 15168 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -60379,7 +60652,7 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner21 + br_if $folding-inner19 local.get $7 i32.load $0 offset=4 i32.const 1 @@ -60390,7 +60663,7 @@ local.set $0 i32.const 0 local.set $1 - loop $for-loop|0216 + loop $for-loop|0976 local.get $1 local.get $3 i32.lt_s @@ -60422,7 +60695,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0216 + br $for-loop|0976 end end local.get $7 @@ -60439,7 +60712,7 @@ i32.const 8 i32.add i32.lt_s - br_if $folding-inner21 + br_if $folding-inner19 local.get $7 i32.load $0 offset=4 i32.const 8 @@ -60450,7 +60723,7 @@ local.set $2 i32.const 0 local.set $1 - loop $for-loop|0221 + loop $for-loop|0985 local.get $1 local.get $4 i32.lt_s @@ -60482,7 +60755,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0221 + br $for-loop|0985 end end i32.const 10 @@ -60547,7 +60820,7 @@ local.get $7 i32.load $0 offset=8 i32.gt_s - br_if $folding-inner21 + br_if $folding-inner19 local.get $7 i32.load $0 offset=4 local.set $3 @@ -60556,7 +60829,7 @@ local.set $2 i32.const 0 local.set $1 - loop $for-loop|0226 + loop $for-loop|0994 local.get $1 local.get $4 i32.lt_s @@ -60581,7 +60854,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0226 + br $for-loop|0994 end end local.get $7 @@ -60609,7 +60882,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -60645,7 +60918,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -60734,7 +61007,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -60770,15 +61043,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1151 - block $0of1152 - block $outOfRange153 + block $1of178 + block $0of179 + block $outOfRange80 global.get $~argumentsLength - br_table $0of1152 $1of1151 $outOfRange153 + br_table $0of179 $1of178 $outOfRange80 end unreachable end @@ -60859,7 +61132,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -60895,15 +61168,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1155 - block $0of1156 - block $outOfRange157 + block $1of182 + block $0of183 + block $outOfRange84 global.get $~argumentsLength - br_table $0of1156 $1of1155 $outOfRange157 + br_table $0of183 $1of182 $outOfRange84 end unreachable end @@ -60984,7 +61257,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61020,15 +61293,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of139 - block $0of140 - block $outOfRange41 + block $1of188 + block $0of189 + block $outOfRange90 global.get $~argumentsLength - br_table $0of140 $1of139 $outOfRange41 + br_table $0of189 $1of188 $outOfRange90 end unreachable end @@ -61113,7 +61386,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61149,15 +61422,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of143 - block $0of144 - block $outOfRange45 + block $1of192 + block $0of193 + block $outOfRange94 global.get $~argumentsLength - br_table $0of144 $1of143 $outOfRange45 + br_table $0of193 $1of192 $outOfRange94 end unreachable end @@ -61242,7 +61515,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61278,15 +61551,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of147 - block $0of148 - block $outOfRange49 + block $1of196 + block $0of197 + block $outOfRange98 global.get $~argumentsLength - br_table $0of148 $1of147 $outOfRange49 + br_table $0of197 $1of196 $outOfRange98 end unreachable end @@ -61371,7 +61644,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61407,15 +61680,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of151 - block $0of152 - block $outOfRange53 + block $1of1100 + block $0of1101 + block $outOfRange102 global.get $~argumentsLength - br_table $0of152 $1of151 $outOfRange53 + br_table $0of1101 $1of1100 $outOfRange102 end unreachable end @@ -61500,7 +61773,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61536,15 +61809,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of155 - block $0of156 - block $outOfRange57 + block $1of1104 + block $0of1105 + block $outOfRange106 global.get $~argumentsLength - br_table $0of156 $1of155 $outOfRange57 + br_table $0of1105 $1of1104 $outOfRange106 end unreachable end @@ -61629,7 +61902,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61665,15 +61938,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of159 - block $0of160 - block $outOfRange61 + block $1of1108 + block $0of1109 + block $outOfRange110 global.get $~argumentsLength - br_table $0of160 $1of159 $outOfRange61 + br_table $0of1109 $1of1108 $outOfRange110 end unreachable end @@ -61758,7 +62031,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -61794,15 +62067,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of163 - block $0of164 - block $outOfRange65 + block $1of1112 + block $0of1113 + block $outOfRange114 global.get $~argumentsLength - br_table $0of164 $1of163 $outOfRange65 + br_table $0of1113 $1of1112 $outOfRange114 end unreachable end @@ -61885,7 +62158,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner22 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61974,12 +62247,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0230 + loop $while-continue|0997 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0230 + br $while-continue|0997 end end end @@ -62046,176 +62319,176 @@ end i32.const 0 i32.const 1568 - i32.const 541 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 570 - i32.const 5 + i32.const 440 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 575 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 576 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 577 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 578 + i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 - i32.const 5 + i32.const 507 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 509 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 + i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 730 + i32.const 676 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 + i32.const 0 + i32.const 1568 + i32.const 673 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 + i32.const 389 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 49424 - i32.const 49472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 438 - i32.const 3 + i32.const 49424 + i32.const 49472 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 - i32.const 3 + i32.const 570 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 461 + i32.const 575 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 463 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 + i32.const 578 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 - i32.const 3 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 509 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 call $~lib/builtins/abort unreachable end @@ -63166,6 +63439,8 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $5 + local.get $0 + i32.load $0 offset=4 local.get $1 i32.const 0 i32.lt_s @@ -63173,9 +63448,9 @@ local.get $1 local.get $3 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -63187,9 +63462,7 @@ i32.lt_s select end - local.tee $1 - local.get $0 - i32.load $0 offset=4 + local.tee $0 i32.add i32.store $0 offset=4 local.get $5 @@ -63200,9 +63473,9 @@ local.get $2 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -63214,13 +63487,13 @@ i32.lt_s select end - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s select - local.get $1 + local.get $0 i32.sub i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index 74dd0fb399..c81f7951d4 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -104,22 +104,26 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -131,9 +135,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -141,7 +149,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -193,7 +201,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -202,11 +210,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -225,7 +237,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -247,7 +259,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -268,6 +280,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -291,12 +311,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -315,7 +335,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -339,7 +359,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -418,36 +438,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -472,7 +508,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -572,10 +608,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -666,7 +702,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -719,7 +755,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -741,7 +777,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -749,7 +785,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -776,7 +812,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -784,7 +820,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -799,7 +835,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -994,7 +1030,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1104,7 +1140,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1358,7 +1394,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1381,7 +1417,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1821,7 +1857,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1998,7 +2034,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2068,7 +2104,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2080,13 +2116,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2130,7 +2166,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2169,14 +2205,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2231,6 +2267,10 @@ memory.fill $0 local.get $ptr ) + (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/rt/itcms/__renew (type $i32_i32_=>_i32) (param $oldPtr i32) (param $size i32) (result i32) (local $oldObj i32) (local $newPtr i32) @@ -2242,7 +2282,7 @@ local.set $oldObj local.get $size local.get $oldObj - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2259,7 +2299,7 @@ end local.get $size local.get $oldObj - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId call $~lib/rt/itcms/__new local.set $newPtr local.get $newPtr @@ -2267,7 +2307,7 @@ local.get $size local.tee $4 local.get $oldObj - i32.load $0 offset=16 + call $~lib/rt/itcms/Object#get:rtSize local.tee $5 local.get $4 local.get $5 diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 7ec1e0b778..d45b126b9a 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -43,14 +43,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -62,9 +62,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -72,7 +76,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -124,7 +128,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -133,11 +137,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -156,7 +164,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -178,7 +186,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -199,6 +207,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -222,12 +238,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -246,7 +262,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -270,7 +286,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -349,36 +365,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -403,7 +435,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -503,10 +535,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -597,7 +629,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -650,7 +682,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -672,7 +704,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -680,7 +712,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -707,7 +739,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -715,7 +747,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -730,7 +762,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -925,7 +957,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1035,7 +1067,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1289,7 +1321,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1312,7 +1344,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1752,7 +1784,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -1929,7 +1961,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1999,7 +2031,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2011,13 +2043,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2061,7 +2093,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2100,14 +2132,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index a1616a4efc..b7cb5f7043 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) @@ -106,11 +106,15 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -262,14 +266,14 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -281,9 +285,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -291,7 +299,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -343,7 +351,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -352,11 +360,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -375,7 +387,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -397,7 +409,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -418,6 +430,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -441,12 +461,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -465,7 +485,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -489,7 +509,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -568,36 +588,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -622,7 +658,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -722,10 +758,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -816,7 +852,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -869,7 +905,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -891,7 +927,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -899,7 +935,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -926,7 +962,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -934,7 +970,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -949,7 +985,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1144,7 +1180,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1254,7 +1290,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1508,7 +1544,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1531,7 +1567,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1971,7 +2007,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2148,7 +2184,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2218,7 +2254,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2230,13 +2266,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2280,7 +2316,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2319,14 +2355,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2468,7 +2504,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u ) @@ -4228,34 +4264,46 @@ local.get $this call $~lib/util/number/dtoa ) - (func $templateliteral/Ref#set:value (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $templateliteral/Ref#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) + (func $templateliteral/Ref#get:value (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String#concat ) - (func $templateliteral/RecursiveObject#set:key (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $templateliteral/RecursiveObject#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) - (func $templateliteral/RecursiveObject#set:val (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $templateliteral/RecursiveObject#set:val (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 - local.get $0 - local.get $1 + local.get $this + local.get $value i32.const 0 call $~lib/rt/itcms/__link ) + (func $templateliteral/RecursiveObject#get:val (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $templateliteral/RecursiveObject#get:key (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $start:templateliteral (type $none_=>_none) memory.size $0 i32.const 16 @@ -4320,7 +4368,7 @@ local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end loop $while-continue|0 @@ -5098,7 +5146,7 @@ i32.store $0 local.get $1 local.get $this - i32.load $0 + call $templateliteral/Ref#get:value i32.const 10 call $~lib/number/I32#toString local.set $1 @@ -5283,14 +5331,14 @@ memory.fill $0 global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 offset=4 + call $templateliteral/RecursiveObject#get:val local.tee $val i32.store $0 local.get $val i32.eqz if local.get $this - i32.load $0 + call $templateliteral/RecursiveObject#get:key local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -5301,7 +5349,7 @@ end global.get $~lib/memory/__stack_pointer local.get $this - i32.load $0 + call $templateliteral/RecursiveObject#get:key local.tee $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index a18d96cbd1..cf976c7bb8 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1,7 +1,7 @@ (module + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -158,14 +158,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -177,9 +177,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -187,7 +191,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -239,7 +243,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -248,11 +252,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -271,7 +279,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -293,7 +301,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -314,6 +322,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -337,12 +353,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -361,7 +377,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -385,7 +401,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -464,36 +480,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -518,7 +550,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -618,10 +650,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -712,7 +744,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -765,7 +797,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -787,7 +819,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -795,7 +827,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -822,7 +854,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -830,7 +862,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -845,7 +877,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1040,7 +1072,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1150,7 +1182,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1404,7 +1436,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1427,7 +1459,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 3c3c9811b7..3b4b967f29 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -62,11 +62,15 @@ (elem $0 (i32.const 1) $start:typeof~anonymous|0) (export "memory" (memory $0)) (export "_start" (func $~start)) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=16 + ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub - i32.load $0 offset=16 + call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u ) @@ -221,14 +225,14 @@ (func $start:typeof~anonymous|0 (type $none_=>_none) nop ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -240,9 +244,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -250,7 +258,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -302,7 +310,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -311,11 +319,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -334,7 +346,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -356,7 +368,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -377,6 +389,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -400,12 +420,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -424,7 +444,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -448,7 +468,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -527,36 +547,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -581,7 +617,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -681,10 +717,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -775,7 +811,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -828,7 +864,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -850,7 +886,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -858,7 +894,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -885,7 +921,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -893,7 +929,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -908,7 +944,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1103,7 +1139,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1213,7 +1249,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1467,7 +1503,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1490,7 +1526,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -1930,7 +1966,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2107,7 +2143,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2177,7 +2213,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2189,13 +2225,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2239,7 +2275,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2278,14 +2314,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2374,9 +2410,13 @@ call $~lib/rt/itcms/__visit end ) - (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + (func $~lib/function/Function<%28%29=>void>#get:_env (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/function/Function<%28%29=>void>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) + local.get $this + call $~lib/function/Function<%28%29=>void>#get:_env local.get $cookie call $~lib/rt/itcms/__visit ) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 928d66ce5d..1a6300fcae 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1,11 +1,11 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -1138,6 +1138,239 @@ end end ) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill $0 + local.get $0 + ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid block $typeof/SomeClass @@ -1188,10 +1421,6 @@ ) (func $start:typeof (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1606,237 +1835,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $0 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $2 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $0 - local.get $3 - i32.gt_s - select - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $3 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load $0 offset=8 - local.set $3 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $3 - i32.store $0 offset=8 - local.get $3 - local.get $0 - local.get $3 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total + i32.store $0 local.get $0 - i32.const 20 - i32.add + call $~lib/rt/itcms/__new local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $1 - local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index e85bfc6222..78304df09d 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -498,14 +498,14 @@ i32.const 1 global.set $while/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -517,9 +517,13 @@ call $~lib/rt/itcms/Object#set:prev local.get $space ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -527,7 +531,7 @@ ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and ) @@ -579,7 +583,7 @@ (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) local.get $this local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.const -1 i32.xor @@ -588,11 +592,15 @@ i32.or call $~lib/rt/itcms/Object#set:nextWithColor ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) local.get $this local.get $obj local.get $this - i32.load $0 offset=4 + call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and i32.or @@ -611,7 +619,7 @@ i32.const 1 drop local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev i32.const 0 i32.eq if (result i32) @@ -633,7 +641,7 @@ return end local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev i32.const 1 drop @@ -654,6 +662,14 @@ local.get $next call $~lib/rt/itcms/Object#set:next ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) (local $ptr i32) global.get $~lib/rt/__rtti_base @@ -677,12 +693,12 @@ i32.const 8 i32.mul i32.add - i32.load $0 + call $~lib/shared/typeinfo/Typeinfo#get:flags ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) local.get $this - i32.load $0 offset=12 + call $~lib/rt/itcms/Object#get:rtId local.set $rtId local.get $rtId i32.const 1 @@ -701,7 +717,7 @@ (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) local.get $list - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.set $prev local.get $this local.get $list @@ -725,7 +741,7 @@ i32.eq if local.get $this - i32.load $0 offset=8 + call $~lib/rt/itcms/Object#get:prev local.tee $1 i32.eqz if (result i32) @@ -804,36 +820,52 @@ end end ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 local.get $this - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=8 ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) (local $blockInfo i32) (local $size i32) @@ -858,7 +890,7 @@ (local $fl|22 i32) (local $slMap|23 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -958,10 +990,10 @@ unreachable end local.get $block - i32.load $0 offset=4 + call $~lib/rt/tlsf/Block#get:prev local.set $prev local.get $block - i32.load $0 offset=8 + call $~lib/rt/tlsf/Block#get:next local.set $next local.get $prev if @@ -1052,7 +1084,7 @@ if local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1105,7 +1137,7 @@ unreachable end local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -1127,7 +1159,7 @@ i32.const 4 i32.add local.get $block|3 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1135,7 +1167,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo local.get $rightInfo i32.const 1 @@ -1162,7 +1194,7 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -1170,7 +1202,7 @@ i32.add local.set $right local.get $right - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $rightInfo end local.get $blockInfo @@ -1185,7 +1217,7 @@ i32.load $0 local.set $left local.get $left - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $leftInfo i32.const 1 drop @@ -1380,7 +1412,7 @@ i32.store $0 offset=96 local.get $root local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 1 local.get $fl i32.shl @@ -1490,7 +1522,7 @@ i32.sub local.set $start local.get $tail - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else nop @@ -1744,7 +1776,7 @@ end if (result i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.and i32.eqz @@ -1767,7 +1799,7 @@ drop local.get $block local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 1 i32.or call $~lib/rt/common/BLOCK#set:mmInfo @@ -2207,7 +2239,7 @@ i32.eqz if local.get $root - i32.load $0 + call $~lib/rt/tlsf/Root#get:flMap i32.const 0 i32.const -1 i32.xor @@ -2384,7 +2416,7 @@ (local $block|6 i32) (local $block|7 i32) local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo local.set $blockInfo i32.const 1 drop @@ -2454,7 +2486,7 @@ i32.const 4 i32.add local.get $block|7 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2466,13 +2498,13 @@ i32.const 4 i32.add local.get $block|6 - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor i32.and i32.add - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 i32.xor @@ -2516,7 +2548,7 @@ i32.const 1 drop local.get $block - i32.load $0 + call $~lib/rt/common/BLOCK#get:mmInfo i32.const 3 i32.const -1 i32.xor @@ -2555,14 +2587,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + local.get $this + local.get $value i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index dcf9fcd656..71672e3526 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -994,6 +994,239 @@ end end ) + (func $~lib/rt/itcms/__new (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size $0 + local.tee $0 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + 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 $0 + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $0 + i32.const 3 + i32.store $0 offset=12 + local.get $0 + i32.const 0 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load $0 offset=8 + local.set $2 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill $0 + local.get $0 + ) (func $start:while (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -1544,10 +1777,6 @@ ) (func $while/Ref#constructor (type $none_=>_i32) (result i32) (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1564,237 +1793,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $0 - i32.eqz - if - memory.size $0 - local.tee $0 - i32.const 4 - local.get $3 - i32.load $0 offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - 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 $0 - i32.const 0 - i32.lt_s - if - local.get $1 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $0 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load $0 - local.tee $4 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $1 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $0 - i32.const 32 - i32.add - local.tee $4 - local.get $1 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $4 - i32.const -2 - i32.and - i32.store $0 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $0 - i32.const 3 - i32.store $0 offset=12 - local.get $0 i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load $0 offset=8 - local.set $3 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $1 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $3 - i32.store $0 offset=8 - local.get $3 - local.get $0 - local.get $3 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total + i32.store $0 local.get $0 - i32.const 20 - i32.add + call $~lib/rt/itcms/__new local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $2 - local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 From 632309e6cbe109c297b280f40bd8408c80700685 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 02:31:23 +0100 Subject: [PATCH 04/13] lint --- src/compiler.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 33019da498..bfec3471f4 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -65,8 +65,7 @@ import { CommonNames, Feature, Target, - Runtime, - featureToString + Runtime } from "./common"; import { From c53c4dbe4b34836f98aa559aea5dd1288998f434 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 02:39:21 +0100 Subject: [PATCH 05/13] remove unused function --- src/program.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/program.ts b/src/program.ts index 4fdc1f314f..e7c331f2a8 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3001,17 +3001,6 @@ export abstract class Element { return (this.flags & vis) == (other.flags & vis); } - /** Checks if the visibility of this element overrides the specified's. */ - visibilityOverrides(existing: Element): bool { - // Private cannot be overridden - if (existing.is(CommonFlags.Private)) return false; - // Protected is overridden by protected or public - if (existing.is(CommonFlags.Protected)) return this.is(CommonFlags.Protected) || this.isPublic; - // Public is overridden only by public - if (existing.isPublic) return this.isPublic; - return false; - } - /** Returns a string representation of this element. */ toString(): string { return `${this.internalName}, kind=${this.kind}`; From b8f7f9fe903ed636e54162b6b700334e83caa6a0 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 16:14:11 +0100 Subject: [PATCH 06/13] improve --- src/compiler.ts | 20 +- src/program.ts | 22 +- tests/compiler/bindings/esm.debug.wat | 134 +-- .../bindings/noExportRuntime.debug.wat | 46 +- tests/compiler/bindings/raw.debug.wat | 134 +-- tests/compiler/call-super.debug.wat | 72 +- tests/compiler/class-extends.debug.wat | 8 +- tests/compiler/class-implements.debug.wat | 32 +- .../compiler/class-overloading-cast.debug.wat | 32 +- tests/compiler/class-overloading.debug.wat | 32 +- tests/compiler/class.debug.wat | 68 +- tests/compiler/constructor.debug.wat | 64 +- tests/compiler/do.debug.wat | 32 +- tests/compiler/duplicate-fields.debug.wat | 72 +- tests/compiler/empty-exportruntime.debug.wat | 32 +- tests/compiler/empty-new.debug.wat | 32 +- .../compiler/exportstar-rereexport.debug.wat | 36 +- .../compiler/extends-baseaggregate.debug.wat | 50 +- tests/compiler/extends-recursive.debug.wat | 38 +- tests/compiler/field-initialization.debug.wat | 146 +-- tests/compiler/field.debug.wat | 38 +- tests/compiler/for.debug.wat | 32 +- tests/compiler/function-call.debug.wat | 32 +- tests/compiler/function-expression.debug.wat | 38 +- .../function-inline-regressions.debug.wat | 12 +- tests/compiler/getter-call.debug.wat | 32 +- tests/compiler/heap.debug.wat | 16 +- tests/compiler/infer-array.debug.wat | 32 +- tests/compiler/infer-generic.debug.wat | 36 +- tests/compiler/inlining.debug.wat | 48 +- tests/compiler/instanceof-class.debug.wat | 32 +- tests/compiler/issues/1095.debug.wat | 38 +- tests/compiler/issues/1225.debug.wat | 44 +- tests/compiler/issues/1699.debug.wat | 54 +- tests/compiler/issues/2166.debug.wat | 32 +- tests/compiler/issues/2322/index.debug.wat | 36 +- tests/compiler/logical.debug.wat | 32 +- tests/compiler/managed-cast.debug.wat | 32 +- tests/compiler/new.debug.wat | 32 +- tests/compiler/object-literal.debug.wat | 176 ++-- .../optional-typeparameters.debug.wat | 32 +- tests/compiler/reexport.debug.wat | 36 +- tests/compiler/rereexport.debug.wat | 36 +- tests/compiler/resolve-access.debug.wat | 36 +- tests/compiler/resolve-binary.debug.wat | 32 +- .../compiler/resolve-elementaccess.debug.wat | 46 +- .../resolve-function-expression.debug.wat | 32 +- tests/compiler/resolve-new.debug.wat | 32 +- .../compiler/resolve-propertyaccess.debug.wat | 36 +- tests/compiler/resolve-ternary.debug.wat | 32 +- tests/compiler/resolve-unary.debug.wat | 32 +- tests/compiler/return-unreachable.debug.wat | 50 +- tests/compiler/rt/finalize.debug.wat | 32 +- tests/compiler/rt/instanceof.debug.wat | 32 +- .../rt/runtime-incremental-export.debug.wat | 32 +- .../rt/runtime-minimal-export.debug.wat | 32 +- .../compiler/rt/runtime-stub-export.debug.wat | 20 +- tests/compiler/simd.debug.wat | 32 +- tests/compiler/std/array-literal.debug.wat | 32 +- tests/compiler/std/array.debug.wat | 142 +-- tests/compiler/std/arraybuffer.debug.wat | 60 +- tests/compiler/std/dataview.debug.wat | 60 +- tests/compiler/std/date.debug.wat | 52 +- tests/compiler/std/map.debug.wat | 896 +++++++++--------- tests/compiler/std/new.debug.wat | 40 +- .../std/operator-overloading.debug.wat | 64 +- tests/compiler/std/pointer.debug.wat | 8 +- tests/compiler/std/set.debug.wat | 572 +++++------ tests/compiler/std/static-array.debug.wat | 48 +- tests/compiler/std/staticarray.debug.wat | 36 +- .../compiler/std/string-casemapping.debug.wat | 32 +- tests/compiler/std/string-encoding.debug.wat | 32 +- tests/compiler/std/string.debug.wat | 36 +- tests/compiler/std/symbol.debug.wat | 104 +- tests/compiler/std/typedarray.debug.wat | 46 +- tests/compiler/std/uri.debug.wat | 32 +- tests/compiler/super-inline.debug.wat | 32 +- tests/compiler/templateliteral.debug.wat | 44 +- tests/compiler/throw.debug.wat | 24 +- tests/compiler/typeof.debug.wat | 32 +- tests/compiler/while.debug.wat | 32 +- 81 files changed, 2494 insertions(+), 2500 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index bfec3471f4..93047bd69c 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -5160,15 +5160,14 @@ export class Compiler extends DiagnosticEmitter { ); return module.unreachable(); } - let namespaceMembers = namespace.members; - if (!namespaceMembers || !namespaceMembers.has(CommonNames.pow)) { + let prototype = namespace.getMember(CommonNames.pow); + if (!prototype) { this.error( DiagnosticCode.Cannot_find_name_0, reportNode.range, "Mathf.pow" ); return module.unreachable(); } - let prototype = assert(namespaceMembers.get(CommonNames.pow)); assert(prototype.kind == ElementKind.FunctionPrototype); this.f32PowInstance = instance = this.resolver.resolveFunction(prototype, null); } @@ -5202,15 +5201,14 @@ export class Compiler extends DiagnosticEmitter { ); return module.unreachable(); } - let namespaceMembers = namespace.members; - if (!namespaceMembers || !namespaceMembers.has(CommonNames.pow)) { + let prototype = namespace.getMember(CommonNames.pow); + if (!prototype) { this.error( DiagnosticCode.Cannot_find_name_0, reportNode.range, "Math.pow" ); return module.unreachable(); } - let prototype = assert(namespaceMembers.get(CommonNames.pow)); assert(prototype.kind == ElementKind.FunctionPrototype); this.f64PowInstance = instance = this.resolver.resolveFunction(prototype, null); } @@ -5288,15 +5286,14 @@ export class Compiler extends DiagnosticEmitter { ); return module.unreachable(); } - let namespaceMembers = namespace.members; - if (!namespaceMembers || !namespaceMembers.has(CommonNames.mod)) { + let prototype = namespace.getMember(CommonNames.mod); + if (!prototype) { this.error( DiagnosticCode.Cannot_find_name_0, reportNode.range, "Mathf.mod" ); return module.unreachable(); } - let prototype = assert(namespaceMembers.get(CommonNames.mod)); assert(prototype.kind == ElementKind.FunctionPrototype); this.f32ModInstance = instance = this.resolver.resolveFunction(prototype, null); } @@ -5316,15 +5313,14 @@ export class Compiler extends DiagnosticEmitter { ); return module.unreachable(); } - let namespaceMembers = namespace.members; - if (!namespaceMembers || !namespaceMembers.has(CommonNames.mod)) { + let prototype = namespace.getMember(CommonNames.mod); + if (!prototype) { this.error( DiagnosticCode.Cannot_find_name_0, reportNode.range, "Math.mod" ); return module.unreachable(); } - let prototype = assert(namespaceMembers.get(CommonNames.mod)); assert(prototype.kind == ElementKind.FunctionPrototype); this.f64ModInstance = instance = this.resolver.resolveFunction(prototype, null); } diff --git a/src/program.ts b/src/program.ts index e7c331f2a8..6082c9510e 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3886,19 +3886,17 @@ export class PropertyPrototype extends DeclaredElement { /** Pre-checked flags indicating built-in decorators. */ decoratorFlags: DecoratorFlags, ): PropertyPrototype { - // A field differs from a property in that accessing it is merely a load - // from respectively store to a memory address relative to its `this` - // pointer, not a function call. However, fields can be overloaded with - // properties and vice-versa, creating a situation where they function more - // like properties, using virtual stubs in their accessor functions to - // determine which overload to call. Hence, fields are represented as - // properties, with compiler-generated accessors for cases they are used - // like properties. As a result, emitting actual loads and stores becomes an - // optimization in non-overloaded cases. + // A field is a property with an attached memory offset. Unlike normal + // properties, accessors for fields are not explicitly declared, so we + // declare them implicitly here and compile them as built-ins when used. + // As a result, explicit and implicit accessors can override each other, + // which is useful when implementing interfaces declaring "fields". Such + // fields are satisfied by either a field or a normal property, so the + // virtual stub at the interface needs to handle both interchangeably. let nativeRange = Source.native.range; let typeNode = fieldDeclaration.type; if (!typeNode) typeNode = Node.createOmittedType(fieldDeclaration.name.range.atEnd); - let getterDeclaration = new MethodDeclaration( + let getterDeclaration = new MethodDeclaration( // get name(): type fieldDeclaration.name, fieldDeclaration.decorators, fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Get, @@ -3907,7 +3905,7 @@ export class PropertyPrototype extends DeclaredElement { null, nativeRange ); - let setterDeclaration = new MethodDeclaration( + let setterDeclaration = new MethodDeclaration( // set name(name: type) fieldDeclaration.name, fieldDeclaration.decorators, fieldDeclaration.flags | CommonFlags.Instance | CommonFlags.Set, @@ -3916,7 +3914,7 @@ export class PropertyPrototype extends DeclaredElement { [ new ParameterNode( ParameterKind.Default, - new IdentifierExpression("value", false, nativeRange), + fieldDeclaration.name, typeNode, null, nativeRange ) ], diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index 5e5884f155..7f2828be8a 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -148,14 +148,14 @@ i32.sub call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -484,24 +484,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2237,14 +2237,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2390,23 +2390,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) @@ -2567,28 +2567,28 @@ (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -2825,95 +2825,95 @@ local.get $value call $~lib/array/Array#__uset ) - (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store8 $0 ) - (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store16 $0 offset=2 ) - (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) local.get $this - local.get $value + local.get $c i32.store $0 offset=4 ) - (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $d i64) local.get $this - local.get $value + local.get $d i64.store $0 offset=8 ) - (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $e i32) local.get $this - local.get $value + local.get $e i32.store8 $0 offset=16 ) - (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $f i32) local.get $this - local.get $value + local.get $f i32.store16 $0 offset=18 ) - (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $g i32) local.get $this - local.get $value + local.get $g i32.store $0 offset=20 ) - (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $h i64) local.get $this - local.get $value + local.get $h i64.store $0 offset=24 ) - (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $i i32) local.get $this - local.get $value + local.get $i i32.store $0 offset=32 ) - (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $j i32) local.get $this - local.get $value + local.get $j i32.store $0 offset=36 ) - (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $k i32) local.get $this - local.get $value + local.get $k i32.store8 $0 offset=40 ) - (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $l f32) local.get $this - local.get $value + local.get $l f32.store $0 offset=44 ) - (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $m f64) local.get $this - local.get $value + local.get $m f64.store $0 offset=48 ) - (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $n i32) local.get $this - local.get $value + local.get $n i32.store $0 offset=56 local.get $this - local.get $value + local.get $n i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $o i32) local.get $this - local.get $value + local.get $o i32.store $0 offset=60 local.get $this - local.get $value + local.get $o i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $p i32) local.get $this - local.get $value + local.get $p i32.store $0 offset=64 local.get $this - local.get $value + local.get $p i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index 54e1818fb8..fbc556d5bd 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -70,14 +70,14 @@ (export "_start" (func $~start)) (export "takesNonPlainObject" (func $export:bindings/noExportRuntime/takesNonPlainObject)) (export "takesFunction" (func $export:bindings/noExportRuntime/takesFunction)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -406,24 +406,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2159,14 +2159,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2289,23 +2289,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $start:bindings/noExportRuntime (type $none_=>_none) diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 584c63b770..4edbac0cbd 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -151,14 +151,14 @@ i32.sub call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -487,24 +487,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2240,14 +2240,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2393,23 +2393,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) @@ -2570,28 +2570,28 @@ (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -2828,95 +2828,95 @@ local.get $value call $~lib/array/Array#__uset ) - (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store8 $0 ) - (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store16 $0 offset=2 ) - (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) local.get $this - local.get $value + local.get $c i32.store $0 offset=4 ) - (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $bindings/esm/PlainObject#set:d (type $i32_i64_=>_none) (param $this i32) (param $d i64) local.get $this - local.get $value + local.get $d i64.store $0 offset=8 ) - (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:e (type $i32_i32_=>_none) (param $this i32) (param $e i32) local.get $this - local.get $value + local.get $e i32.store8 $0 offset=16 ) - (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:f (type $i32_i32_=>_none) (param $this i32) (param $f i32) local.get $this - local.get $value + local.get $f i32.store16 $0 offset=18 ) - (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:g (type $i32_i32_=>_none) (param $this i32) (param $g i32) local.get $this - local.get $value + local.get $g i32.store $0 offset=20 ) - (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $bindings/esm/PlainObject#set:h (type $i32_i64_=>_none) (param $this i32) (param $h i64) local.get $this - local.get $value + local.get $h i64.store $0 offset=24 ) - (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:i (type $i32_i32_=>_none) (param $this i32) (param $i i32) local.get $this - local.get $value + local.get $i i32.store $0 offset=32 ) - (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:j (type $i32_i32_=>_none) (param $this i32) (param $j i32) local.get $this - local.get $value + local.get $j i32.store $0 offset=36 ) - (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:k (type $i32_i32_=>_none) (param $this i32) (param $k i32) local.get $this - local.get $value + local.get $k i32.store8 $0 offset=40 ) - (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $bindings/esm/PlainObject#set:l (type $i32_f32_=>_none) (param $this i32) (param $l f32) local.get $this - local.get $value + local.get $l f32.store $0 offset=44 ) - (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $bindings/esm/PlainObject#set:m (type $i32_f64_=>_none) (param $this i32) (param $m f64) local.get $this - local.get $value + local.get $m f64.store $0 offset=48 ) - (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:n (type $i32_i32_=>_none) (param $this i32) (param $n i32) local.get $this - local.get $value + local.get $n i32.store $0 offset=56 local.get $this - local.get $value + local.get $n i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:o (type $i32_i32_=>_none) (param $this i32) (param $o i32) local.get $this - local.get $value + local.get $o i32.store $0 offset=60 local.get $this - local.get $value + local.get $o i32.const 0 call $~lib/rt/itcms/__link ) - (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $bindings/esm/PlainObject#set:p (type $i32_i32_=>_none) (param $this i32) (param $p i32) local.get $this - local.get $value + local.get $p i32.store $0 offset=64 local.get $this - local.get $value + local.get $p i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index b9d4025c83..bfb493704d 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -46,14 +46,14 @@ local.get $this i32.load $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -382,24 +382,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2135,14 +2135,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2197,18 +2197,18 @@ memory.fill $0 local.get $ptr ) - (func $call-super/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $call-super/B#get:b (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $call-super/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) (func $call-super/test1 (type $none_=>_none) @@ -2257,9 +2257,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/C#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/C#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $call-super/C#get:a (type $i32_=>_i32) (param $this i32) (result i32) @@ -2270,9 +2270,9 @@ local.get $this i32.load $0 offset=4 ) - (func $call-super/D#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/D#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) (func $call-super/test2 (type $none_=>_none) @@ -2325,14 +2325,14 @@ local.get $this i32.load $0 ) - (func $call-super/E#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/E#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $call-super/F#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/F#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) (func $call-super/F#get:b (type $i32_=>_i32) (param $this i32) (result i32) @@ -2385,14 +2385,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/G#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/G#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $call-super/H#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/H#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) (func $call-super/G#get:a (type $i32_=>_i32) (param $this i32) (result i32) @@ -2449,14 +2449,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-super/I#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/I#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $call-super/J#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $call-super/J#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) (func $call-super/I#get:a (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/class-extends.debug.wat b/tests/compiler/class-extends.debug.wat index f248e185fb..3becc57e29 100644 --- a/tests/compiler/class-extends.debug.wat +++ b/tests/compiler/class-extends.debug.wat @@ -21,14 +21,14 @@ local.get $this i32.load16_s $0 offset=4 ) - (func $class-extends/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class-extends/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $class-extends/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class-extends/B#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store16 $0 offset=4 ) (func $class-extends/test (type $i32_=>_none) (param $b i32) diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index 18da9b976a..3fca1c91d3 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -49,14 +49,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -385,24 +385,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2138,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 1ce5ffdee7..51f8b53963 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -55,14 +55,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -391,24 +391,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2144,14 +2144,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 87ac8fdb3c..1a8e4876ec 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -59,14 +59,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -395,24 +395,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2148,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index f0ee09cb4d..a7964219ba 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -107,19 +107,19 @@ local.get $this i32.load8_s $0 offset=6 ) - (func $class/Animal#set:one (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class/Animal#set:one (type $i32_i32_=>_none) (param $this i32) (param $one i32) local.get $this - local.get $value + local.get $one i32.store $0 ) - (func $class/Animal#set:two (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class/Animal#set:two (type $i32_i32_=>_none) (param $this i32) (param $two i32) local.get $this - local.get $value + local.get $two i32.store16 $0 offset=4 ) - (func $class/Animal#set:three (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class/Animal#set:three (type $i32_i32_=>_none) (param $this i32) (param $three i32) local.get $this - local.get $value + local.get $three i32.store8 $0 offset=6 ) (func $class/test (type $i32_=>_i32) (param $animal i32) (result i32) @@ -167,14 +167,14 @@ local.set $cls local.get $cls ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -503,24 +503,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2256,14 +2256,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2386,36 +2386,36 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) - (func $class/GenericInitializer#set:foo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $class/GenericInitializer#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) local.get $this - local.get $value + local.get $foo i32.store $0 local.get $this - local.get $value + local.get $foo i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 2698f233d6..7b2bafeed2 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -54,14 +54,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -390,24 +390,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2143,14 +2143,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2205,29 +2205,29 @@ memory.fill $0 local.get $ptr ) - (func $constructor/EmptyCtorWithFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/EmptyCtorWithFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $constructor/EmptyCtorWithFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/EmptyCtorWithFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $constructor/EmptyCtorWithFieldAccess#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/EmptyCtorWithFieldAccess#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $constructor/JustFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/JustFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $constructor/JustFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/JustFieldNoInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $constructor/CtorReturns#constructor (type $i32_=>_i32) (param $this i32) (result i32) @@ -2245,19 +2245,19 @@ local.get $this i32.load $0 ) - (func $constructor/CtorFieldInitOrder#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/CtorFieldInitOrder#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 offset=4 ) - (func $constructor/CtorFieldInitOrder#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/CtorFieldInitOrder#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=8 ) - (func $constructor/CtorFieldInitOrder#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $constructor/CtorFieldInitOrder#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) local.get $this - local.get $value + local.get $c i32.store $0 ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index c4788bd475..542c5f88ba 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -451,14 +451,14 @@ i32.const 1 global.set $do/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -787,24 +787,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2540,14 +2540,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 64a4b61fa1..04028b76fd 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -44,19 +44,19 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $duplicate-fields/A#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/A#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -385,24 +385,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2138,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2200,9 +2200,9 @@ memory.fill $0 local.get $ptr ) - (func $duplicate-fields/B#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/B#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 ) (func $duplicate-fields/B#get:bar (type $i32_=>_i32) (param $this i32) (result i32) @@ -2277,27 +2277,27 @@ end end ) - (func $duplicate-fields/A2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/A2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 local.get $this - local.get $value + local.get $bar i32.const 0 call $~lib/rt/itcms/__link ) - (func $duplicate-fields/B2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/B2#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 local.get $this - local.get $value + local.get $bar i32.const 0 call $~lib/rt/itcms/__link ) - (func $duplicate-fields/Foo#set:foo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/Foo#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) local.get $this - local.get $value + local.get $foo i32.store $0 ) (func $duplicate-fields/B2#get:bar (type $i32_=>_i32) (param $this i32) (result i32) @@ -2308,24 +2308,24 @@ local.get $this i32.load $0 ) - (func $duplicate-fields/A3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/A3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $prot i32) local.get $this - local.get $value + local.get $prot i32.store $0 ) - (func $duplicate-fields/A3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/A3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $pub i32) local.get $this - local.get $value + local.get $pub i32.store $0 offset=4 ) - (func $duplicate-fields/B3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/B3#set:prot (type $i32_i32_=>_none) (param $this i32) (param $prot i32) local.get $this - local.get $value + local.get $prot i32.store $0 ) - (func $duplicate-fields/B3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $duplicate-fields/B3#set:pub (type $i32_i32_=>_none) (param $this i32) (param $pub i32) local.get $this - local.get $value + local.get $pub i32.store $0 offset=4 ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 0e2269c31e..66727db5ab 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -48,14 +48,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -384,24 +384,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2137,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 653fb062a3..2229ada305 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -41,14 +41,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -377,24 +377,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2130,14 +2130,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 2289e2b015..7d44264cd6 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -73,19 +73,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this - local.get $value + local.get $doors i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -414,24 +414,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2167,14 +2167,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 9de3520871..4d956570d3 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -51,14 +51,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -387,24 +387,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2140,14 +2140,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2202,14 +2202,14 @@ memory.fill $0 local.get $ptr ) - (func $extends-baseaggregate/A1#set:padding0 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $extends-baseaggregate/A1#set:padding0 (type $i32_f64_=>_none) (param $this i32) (param $padding0 f64) local.get $this - local.get $value + local.get $padding0 f64.store $0 ) - (func $extends-baseaggregate/A1#set:padding1 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $extends-baseaggregate/A1#set:padding1 (type $i32_f64_=>_none) (param $this i32) (param $padding1 f64) local.get $this - local.get $value + local.get $padding1 f64.store $0 offset=8 ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) @@ -2280,12 +2280,12 @@ end end ) - (func $extends-baseaggregate/A1#set:c1 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $extends-baseaggregate/A1#set:c1 (type $i32_i32_=>_none) (param $this i32) (param $c1 i32) local.get $this - local.get $value + local.get $c1 i32.store $0 offset=16 local.get $this - local.get $value + local.get $c1 i32.const 0 call $~lib/rt/itcms/__link ) @@ -2450,9 +2450,9 @@ local.get $this i32.load $0 offset=4 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e59a87c697..4de3d29786 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -41,14 +41,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -377,24 +377,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2130,14 +2130,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2260,12 +2260,12 @@ end end ) - (func $extends-recursive/Parent#set:child (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $extends-recursive/Parent#set:child (type $i32_i32_=>_none) (param $this i32) (param $child i32) local.get $this - local.get $value + local.get $child i32.store $0 local.get $this - local.get $value + local.get $child i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index 4390f3db3a..0dc7776187 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -52,14 +52,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -388,24 +388,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2141,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2203,18 +2203,18 @@ memory.fill $0 local.get $ptr ) - (func $field-initialization/Value_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Value_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $field-initialization/Value_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $field-initialization/Value#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Value#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $field-initialization/Value#get:a (type $i32_=>_i32) (param $this i32) (result i32) @@ -2289,12 +2289,12 @@ end end ) - (func $field-initialization/Ref_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2302,12 +2302,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Nullable_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Nullable_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2315,12 +2315,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Nullable#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Nullable#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2328,39 +2328,39 @@ local.get $this i32.load $0 ) - (func $field-initialization/Value_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Value_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $field-initialization/Value_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $field-initialization/Value_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Value_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $field-initialization/Value_Init_Ctor#get:a (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $field-initialization/Value_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Value_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) (func $field-initialization/Value_Ctor_Init#get:a (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $field-initialization/Ref_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2368,12 +2368,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Ref_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2381,12 +2381,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Ref_Ctor_Param#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_Ctor_Param#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2394,12 +2394,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Nullable_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Nullable_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2407,12 +2407,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Nullable_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Nullable_Init_Ctor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2420,12 +2420,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Nullable_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Nullable_Ctor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2433,12 +2433,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Inherit_Base#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Inherit_Base#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2446,17 +2446,17 @@ local.get $this i32.load $0 ) - (func $field-initialization/SomeObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/SomeObject#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $field-initialization/SomeObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/SomeObject#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 local.get $this - local.get $value + local.get $b i32.const 0 call $~lib/rt/itcms/__link ) @@ -2628,12 +2628,12 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $field-initialization/SomeOtherObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/SomeOtherObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) local.get $this - local.get $value + local.get $c i32.store $0 offset=8 local.get $this - local.get $value + local.get $c i32.const 0 call $~lib/rt/itcms/__link ) @@ -2641,12 +2641,12 @@ local.get $this i32.load $0 offset=8 ) - (func $field-initialization/Flow_Balanced#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Flow_Balanced#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2654,12 +2654,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Ref_Init_InlineCtor#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_Init_InlineCtor#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) @@ -2667,12 +2667,12 @@ local.get $this i32.load $0 ) - (func $field-initialization/Ref_InlineCtor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field-initialization/Ref_InlineCtor_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 6cda20d93f..ad0a4af7fe 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -43,14 +43,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -379,24 +379,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2132,14 +2132,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2277,12 +2277,12 @@ end end ) - (func $field/NoStaticConflict#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $field/NoStaticConflict#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 local.get $this - local.get $value + local.get $a i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 7d96d23e2e..79f1d0ba4b 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -468,14 +468,14 @@ i32.const 1 global.set $for/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -804,24 +804,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2557,14 +2557,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 482728c0a5..310a6fe658 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -76,14 +76,14 @@ (func $start:function-call~fn2|4 (type $i32_=>_i32) (param $this i32) (result i32) local.get $this ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -412,24 +412,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2165,14 +2165,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 922df0d113..1237585026 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -231,14 +231,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -567,24 +567,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2320,14 +2320,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2450,12 +2450,12 @@ end end ) - (func $function-expression/FieldClass#set:fieldFunc (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $function-expression/FieldClass#set:fieldFunc (type $i32_i32_=>_none) (param $this i32) (param $fieldFunc i32) local.get $this - local.get $value + local.get $fieldFunc i32.store $0 local.get $this - local.get $value + local.get $fieldFunc i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/function-inline-regressions.debug.wat b/tests/compiler/function-inline-regressions.debug.wat index 8559ce7773..d7c137fc7f 100644 --- a/tests/compiler/function-inline-regressions.debug.wat +++ b/tests/compiler/function-inline-regressions.debug.wat @@ -32,19 +32,19 @@ i32.const 16 i32.load $0 ) - (func $function-inline-regressions/Struct#set:v0 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $function-inline-regressions/Struct#set:v0 (type $i32_i32_=>_none) (param $this i32) (param $v0 i32) local.get $this - local.get $value + local.get $v0 i32.store $0 ) - (func $function-inline-regressions/Struct#set:v1 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $function-inline-regressions/Struct#set:v1 (type $i32_i32_=>_none) (param $this i32) (param $v1 i32) local.get $this - local.get $value + local.get $v1 i32.store $0 offset=4 ) - (func $function-inline-regressions/Struct#set:v2 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $function-inline-regressions/Struct#set:v2 (type $i32_i32_=>_none) (param $this i32) (param $v2 i32) local.get $this - local.get $value + local.get $v2 i32.store $0 offset=8 ) (func $function-inline-regressions/foo (type $i32_i32_i32_=>_i32) (param $v0 i32) (param $v1 i32) (param $v2 i32) (result i32) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index c9e654eabb..922ca1e682 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -44,14 +44,14 @@ (export "test" (func $getter-call/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -380,24 +380,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2133,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 8b2f6bd6c9..e52ee16944 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -21,28 +21,28 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 303a24c7df..e54422f13d 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -60,14 +60,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -396,24 +396,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2149,14 +2149,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index 505ed190e1..711a0f9f1d 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -136,19 +136,19 @@ (func $infer-generic/inferDefault (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $infer-generic/Ref#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $infer-generic/Ref#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -477,24 +477,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2230,14 +2230,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 2ad7b5bcbc..d3054f17d9 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -271,19 +271,19 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $inlining/Baz#set:b (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $inlining/Baz#set:b (type $i32_i32_=>_none) (param $this i32) (param $b i32) local.get $this - local.get $value + local.get $b i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -612,24 +612,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2365,14 +2365,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2427,19 +2427,19 @@ memory.fill $0 local.get $ptr ) - (func $inlining/Baz#set:a (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $inlining/Baz#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this - local.get $value + local.get $a i32.store $0 ) - (func $inlining/Bar#set:e (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $inlining/Bar#set:e (type $i32_i32_=>_none) (param $this i32) (param $e i32) local.get $this - local.get $value + local.get $e i32.store $0 offset=12 ) - (func $inlining/Bar#set:d (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $inlining/Bar#set:d (type $i32_i32_=>_none) (param $this i32) (param $d i32) local.get $this - local.get $value + local.get $d i32.store $0 offset=8 ) (func $inlining/Baz#get:a (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/instanceof-class.debug.wat b/tests/compiler/instanceof-class.debug.wat index 874644471d..1292da3ce8 100644 --- a/tests/compiler/instanceof-class.debug.wat +++ b/tests/compiler/instanceof-class.debug.wat @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -380,24 +380,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2133,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 868cade334..9d75b49d15 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -380,24 +380,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2133,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2263,12 +2263,12 @@ end end ) - (func $issues/1095/Foo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/1095/Foo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 local.get $this - local.get $value + local.get $bar i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 44b40ca7b0..55d7fa3838 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -49,24 +49,24 @@ local.get $this i32.load $0 offset=8 ) - (func $issues/1225/X#set:viaThis (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/1225/X#set:viaThis (type $i32_i32_=>_none) (param $this i32) (param $viaThis i32) local.get $this - local.get $value + local.get $viaThis i32.store $0 offset=4 ) - (func $issues/1225/X#set:normal (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/1225/X#set:normal (type $i32_i32_=>_none) (param $this i32) (param $normal i32) local.get $this - local.get $value + local.get $normal i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -395,24 +395,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2148,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2210,9 +2210,9 @@ memory.fill $0 local.get $ptr ) - (func $issues/1225/X#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/1225/X#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 offset=8 ) (func $issues/1225/X#get:normal (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index d550000a9d..c8f4c37520 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -46,14 +46,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -382,24 +382,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2135,14 +2135,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2265,33 +2265,33 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) - (func $issues/1699/MultiAssignmentTest#set:test (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/1699/MultiAssignmentTest#set:test (type $i32_i32_=>_none) (param $this i32) (param $test i32) local.get $this - local.get $value + local.get $test i32.store $0 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 43323036e8..0169c81a0b 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -48,14 +48,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -384,24 +384,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2137,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 19a4109334..c76f53e6af 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -42,14 +42,14 @@ (export "test" (func $issues/2322/index/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -378,24 +378,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2131,14 +2131,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2193,9 +2193,9 @@ memory.fill $0 local.get $ptr ) - (func $issues/2322/lib/Wrapper#set:v (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $issues/2322/lib/Wrapper#set:v (type $i32_i32_=>_none) (param $this i32) (param $v i32) local.get $this - local.get $value + local.get $v i32.store $0 ) (func $issues/2322/lib/test (type $i32_=>_none) (param $t i32) diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index 241d198747..43dce91098 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -67,14 +67,14 @@ local.get $b end ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -403,24 +403,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2156,14 +2156,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index a033a20fae..c9a2f5256f 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -44,14 +44,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -380,24 +380,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2133,14 +2133,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index d3eca69e9c..5e9587bb27 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -47,14 +47,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -383,24 +383,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2136,14 +2136,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index 7eeda1683c..2bd277105e 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -56,9 +56,9 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $object-literal/Managed#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/Managed#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) @@ -83,14 +83,14 @@ i32.xor i32.and ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) @@ -344,12 +344,12 @@ end end ) - (func $object-literal/Managed#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/Managed#set:baz (type $i32_i32_=>_none) (param $this i32) (param $baz i32) local.get $this - local.get $value + local.get $baz i32.store $0 offset=4 local.get $this - local.get $value + local.get $baz i32.const 0 call $~lib/rt/itcms/__link ) @@ -474,24 +474,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2227,14 +2227,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2457,14 +2457,14 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $object-literal/Unmanaged#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/Unmanaged#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 ) - (func $object-literal/Unmanaged#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/Unmanaged#set:baz (type $i32_i32_=>_none) (param $this i32) (param $baz i32) local.get $this - local.get $value + local.get $baz i32.store $0 offset=4 ) (func $object-literal/Unmanaged#constructor (type $i32_=>_i32) (param $this i32) (result i32) @@ -2491,74 +2491,74 @@ local.get $this i32.load $0 offset=4 ) - (func $object-literal/OmittedTypes#set:int32 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:int32 (type $i32_i32_=>_none) (param $this i32) (param $int32 i32) local.get $this - local.get $value + local.get $int32 i32.store $0 ) - (func $object-literal/OmittedTypes#set:uint32 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:uint32 (type $i32_i32_=>_none) (param $this i32) (param $uint32 i32) local.get $this - local.get $value + local.get $uint32 i32.store $0 offset=4 ) - (func $object-literal/OmittedTypes#set:int64 (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $object-literal/OmittedTypes#set:int64 (type $i32_i64_=>_none) (param $this i32) (param $int64 i64) local.get $this - local.get $value + local.get $int64 i64.store $0 offset=8 ) - (func $object-literal/OmittedTypes#set:uint64 (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $object-literal/OmittedTypes#set:uint64 (type $i32_i64_=>_none) (param $this i32) (param $uint64 i64) local.get $this - local.get $value + local.get $uint64 i64.store $0 offset=16 ) - (func $object-literal/OmittedTypes#set:float32 (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $object-literal/OmittedTypes#set:float32 (type $i32_f32_=>_none) (param $this i32) (param $float32 f32) local.get $this - local.get $value + local.get $float32 f32.store $0 offset=24 ) - (func $object-literal/OmittedTypes#set:float64 (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $object-literal/OmittedTypes#set:float64 (type $i32_f64_=>_none) (param $this i32) (param $float64 f64) local.get $this - local.get $value + local.get $float64 f64.store $0 offset=32 ) - (func $object-literal/OmittedTypes#set:int8 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:int8 (type $i32_i32_=>_none) (param $this i32) (param $int8 i32) local.get $this - local.get $value + local.get $int8 i32.store8 $0 offset=40 ) - (func $object-literal/OmittedTypes#set:uint8 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:uint8 (type $i32_i32_=>_none) (param $this i32) (param $uint8 i32) local.get $this - local.get $value + local.get $uint8 i32.store8 $0 offset=41 ) - (func $object-literal/OmittedTypes#set:int16 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:int16 (type $i32_i32_=>_none) (param $this i32) (param $int16 i32) local.get $this - local.get $value + local.get $int16 i32.store16 $0 offset=42 ) - (func $object-literal/OmittedTypes#set:uint16 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:uint16 (type $i32_i32_=>_none) (param $this i32) (param $uint16 i32) local.get $this - local.get $value + local.get $uint16 i32.store16 $0 offset=44 ) - (func $object-literal/OmittedTypes#set:intsize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:intsize (type $i32_i32_=>_none) (param $this i32) (param $intsize i32) local.get $this - local.get $value + local.get $intsize i32.store $0 offset=48 ) - (func $object-literal/OmittedTypes#set:uintsize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:uintsize (type $i32_i32_=>_none) (param $this i32) (param $uintsize i32) local.get $this - local.get $value + local.get $uintsize i32.store $0 offset=52 ) - (func $object-literal/OmittedTypes#set:alias (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $object-literal/OmittedTypes#set:alias (type $i32_f64_=>_none) (param $this i32) (param $alias f64) local.get $this - local.get $value + local.get $alias f64.store $0 offset=56 ) - (func $object-literal/OmittedTypes#set:isTrue (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedTypes#set:isTrue (type $i32_i32_=>_none) (param $this i32) (param $isTrue i32) local.get $this - local.get $value + local.get $isTrue i32.store8 $0 offset=64 ) (func $object-literal/OmittedTypes#get:int32 (type $i32_=>_i32) (param $this i32) (result i32) @@ -2809,23 +2809,23 @@ unreachable end ) - (func $object-literal/MixedOmitted#set:simpleType (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/MixedOmitted#set:simpleType (type $i32_i32_=>_none) (param $this i32) (param $simpleType i32) local.get $this - local.get $value + local.get $simpleType i32.store $0 ) - (func $object-literal/MixedOmitted#set:complexType (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/MixedOmitted#set:complexType (type $i32_i32_=>_none) (param $this i32) (param $complexType i32) local.get $this - local.get $value + local.get $complexType i32.store $0 offset=4 local.get $this - local.get $value + local.get $complexType i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/MixedOmitted#set:anotherSimpleType (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $object-literal/MixedOmitted#set:anotherSimpleType (type $i32_f64_=>_none) (param $this i32) (param $anotherSimpleType f64) local.get $this - local.get $value + local.get $anotherSimpleType f64.store $0 offset=8 ) (func $object-literal/MixedOmitted#get:simpleType (type $i32_=>_i32) (param $this i32) (result i32) @@ -2840,86 +2840,86 @@ local.get $this f64.load $0 offset=8 ) - (func $object-literal/OmittedFoo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this - local.get $value + local.get $bar i32.store $0 local.get $this - local.get $value + local.get $bar i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:baz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:baz (type $i32_i32_=>_none) (param $this i32) (param $baz i32) local.get $this - local.get $value + local.get $baz i32.store $0 offset=4 local.get $this - local.get $value + local.get $baz i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:quux (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:quux (type $i32_i32_=>_none) (param $this i32) (param $quux i32) local.get $this - local.get $value + local.get $quux i32.store $0 offset=8 local.get $this - local.get $value + local.get $quux i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:quuz (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:quuz (type $i32_i32_=>_none) (param $this i32) (param $quuz i32) local.get $this - local.get $value + local.get $quuz i32.store $0 offset=12 local.get $this - local.get $value + local.get $quuz i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:corge (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:corge (type $i32_i32_=>_none) (param $this i32) (param $corge i32) local.get $this - local.get $value + local.get $corge i32.store $0 offset=16 local.get $this - local.get $value + local.get $corge i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:grault (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:grault (type $i32_i32_=>_none) (param $this i32) (param $grault i32) local.get $this - local.get $value + local.get $grault i32.store $0 offset=20 local.get $this - local.get $value + local.get $grault i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:garply (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:garply (type $i32_i32_=>_none) (param $this i32) (param $garply i32) local.get $this - local.get $value + local.get $garply i32.store $0 offset=24 local.get $this - local.get $value + local.get $garply i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:waldo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:waldo (type $i32_i32_=>_none) (param $this i32) (param $waldo i32) local.get $this - local.get $value + local.get $waldo i32.store $0 offset=28 local.get $this - local.get $value + local.get $waldo i32.const 0 call $~lib/rt/itcms/__link ) - (func $object-literal/OmittedFoo#set:fred (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:fred (type $i32_i32_=>_none) (param $this i32) (param $fred i32) local.get $this - local.get $value + local.get $fred i32.store $0 offset=32 ) - (func $object-literal/OmittedFoo#set:qux (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $object-literal/OmittedFoo#set:qux (type $i32_i32_=>_none) (param $this i32) (param $qux i32) local.get $this - local.get $value + local.get $qux i32.store $0 offset=36 ) (func $object-literal/OmittedFoo#get:bar (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 06d50ba642..11a5a3265f 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -52,14 +52,14 @@ (func $optional-typeparameters/testDerived (type $i32_=>_i32) (param $a i32) (result i32) local.get $a ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -388,24 +388,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2141,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 5dda1aa380..e77848ea01 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -80,19 +80,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this - local.get $value + local.get $doors i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -421,24 +421,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2174,14 +2174,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index 051db59a70..9009f27152 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -73,19 +73,19 @@ local.get $b i32.add ) - (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this - local.get $value + local.get $doors i32.store $0 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -414,24 +414,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2167,14 +2167,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 159795d9c5..f35f4052ae 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -62,14 +62,14 @@ (export "propertyAccess" (func $resolve-access/propertyAccess)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -398,24 +398,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2151,14 +2151,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2935,9 +2935,9 @@ local.get $radix call $~lib/util/number/utoa64 ) - (func $resolve-access/Container#set:foo (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $resolve-access/Container#set:foo (type $i32_i64_=>_none) (param $this i32) (param $foo i64) local.get $this - local.get $value + local.get $foo i64.store $0 ) (func $resolve-access/Container#get:foo (type $i32_=>_i64) (param $this i32) (result i64) diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 7b513b722a..a51df98258 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -324,14 +324,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -660,24 +660,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2413,14 +2413,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index 30d9fc1274..52a8617a6d 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -85,14 +85,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -421,24 +421,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2174,14 +2174,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2304,23 +2304,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 26e95e687b..ce249dbd67 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -128,14 +128,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -464,24 +464,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2217,14 +2217,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 3dbe034c48..199c53de34 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -42,14 +42,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -378,24 +378,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2131,14 +2131,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 5988de9282..e20489e600 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -129,14 +129,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -465,24 +465,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2218,14 +2218,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2811,9 +2811,9 @@ (func $resolve-propertyaccess/Class.get:staticProperty (type $none_=>_i32) (result i32) i32.const 7 ) - (func $resolve-propertyaccess/Class#set:instanceField (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $resolve-propertyaccess/Class#set:instanceField (type $i32_i32_=>_none) (param $this i32) (param $instanceField i32) local.get $this - local.get $value + local.get $instanceField i32.store $0 ) (func $resolve-propertyaccess/Class#get:instanceField (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index a6e430447f..98e51a48e4 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -136,14 +136,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -472,24 +472,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2225,14 +2225,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 8dde0c460c..f26ab0eda2 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -129,14 +129,14 @@ end unreachable ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -465,24 +465,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2218,14 +2218,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index 1fb6b79968..7ca0b00df0 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -45,14 +45,14 @@ (export "test" (func $return-unreachable/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -381,24 +381,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2134,14 +2134,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2264,28 +2264,28 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $return-unreachable/test (type $i32_=>_i32) (param $a i32) (result i32) diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 2e50dfa1e0..4ad4c74c3c 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -45,14 +45,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -397,24 +397,24 @@ i32.const 1 global.set $rt/finalize/ran ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2154,14 +2154,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rt/instanceof.debug.wat b/tests/compiler/rt/instanceof.debug.wat index cbe6434bbd..ae3bcfb3fb 100644 --- a/tests/compiler/rt/instanceof.debug.wat +++ b/tests/compiler/rt/instanceof.debug.wat @@ -52,14 +52,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -388,24 +388,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2141,14 +2141,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 0e2269c31e..66727db5ab 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -48,14 +48,14 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -384,24 +384,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2137,14 +2137,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 04b3b3bced..267df42e54 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -36,28 +36,28 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -1458,24 +1458,24 @@ i32.const 4 i32.add ) - (func $~lib/rt/tcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/tcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) - (func $~lib/rt/tcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/tcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/tcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index b3de0f514b..9846433443 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -84,9 +84,9 @@ local.get $newOffset global.set $~lib/rt/stub/offset ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) (func $~lib/rt/stub/__alloc (type $i32_=>_i32) (param $size i32) (result i32) @@ -134,24 +134,24 @@ call $~lib/rt/common/BLOCK#set:mmInfo local.get $ptr ) - (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $this i32) (param $gcInfo i32) local.get $this - local.get $value + local.get $gcInfo i32.store $0 offset=4 ) - (func $~lib/rt/common/OBJECT#set:gcInfo2 (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/OBJECT#set:gcInfo2 (type $i32_i32_=>_none) (param $this i32) (param $gcInfo2 i32) local.get $this - local.get $value + local.get $gcInfo2 i32.store $0 offset=8 ) - (func $~lib/rt/common/OBJECT#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/OBJECT#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/common/OBJECT#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/OBJECT#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/stub/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index 1b1d5b194e..ec38daa9b3 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -80,14 +80,14 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -416,24 +416,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2169,14 +2169,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 19d815350d..c0fe9bf7c8 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -134,14 +134,14 @@ drop local.get $value ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -470,24 +470,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2223,14 +2223,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 5c7c0f4716..3d39631e53 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -385,14 +385,14 @@ (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -721,24 +721,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2474,14 +2474,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2604,28 +2604,28 @@ end end ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array.isArray<~lib/array/Array|null> (type $i32_=>_i32) (param $value i32) (result i32) @@ -2638,9 +2638,9 @@ i32.const 0 end ) - (func $std/array/Ref#set:v (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/array/Ref#set:v (type $i32_i32_=>_none) (param $this i32) (param $v i32) local.get $this - local.get $value + local.get $v i32.store $0 ) (func $~lib/array/Array.isArray (type $i32_=>_i32) (param $value i32) (result i32) @@ -2653,23 +2653,23 @@ i32.const 0 end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (type $i32_=>_i32) (param $value i32) (result i32) @@ -3706,9 +3706,9 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#set:length (type $i32_i32_=>_none) (param $this i32) (param $newLength i32) @@ -4999,9 +4999,9 @@ local.get $this i32.load $0 offset=12 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) @@ -6465,14 +6465,14 @@ i32.const 1 global.set $~lib/math/random_seeded ) - (func $std/array/Dim#set:height (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/array/Dim#set:height (type $i32_i32_=>_none) (param $this i32) (param $height i32) local.get $this - local.get $value + local.get $height i32.store $0 ) - (func $std/array/Dim#set:width (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/array/Dim#set:width (type $i32_i32_=>_none) (param $this i32) (param $width i32) local.get $this - local.get $value + local.get $width i32.store $0 offset=4 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -11481,28 +11481,28 @@ local.get $a i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array<~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array<~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array<~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array<~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -12421,33 +12421,33 @@ local.get $this call $~lib/array/Array<~lib/array/Array>#get:length_ ) - (func $~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) - (func $std/array/Proxy#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/array/Proxy#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) (func $~lib/array/Array>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -14503,28 +14503,28 @@ call $~lib/string/String.__eq i32.eqz ) - (func $~lib/array/Array<~lib/string/String>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array<~lib/string/String>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array<~lib/string/String>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 3378b51e0f..4c52d95b3a 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -49,14 +49,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -385,24 +385,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2138,14 +2138,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2422,23 +2422,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) @@ -2513,23 +2513,23 @@ i32.const 1 return ) - (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 05d107ac89..e084e40a05 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -55,14 +55,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -391,24 +391,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2144,14 +2144,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2274,23 +2274,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) @@ -2331,23 +2331,23 @@ i32.sub call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/dataview/DataView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 357ee70820..0d17bdd811 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -405,29 +405,29 @@ global.set $~lib/date/_month local.get $year ) - (func $~lib/date/Date#set:year (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/date/Date#set:year (type $i32_i32_=>_none) (param $this i32) (param $year i32) local.get $this - local.get $value + local.get $year i32.store $0 ) - (func $~lib/date/Date#set:month (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/date/Date#set:month (type $i32_i32_=>_none) (param $this i32) (param $month i32) local.get $this - local.get $value + local.get $month i32.store $0 offset=4 ) - (func $~lib/date/Date#set:day (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/date/Date#set:day (type $i32_i32_=>_none) (param $this i32) (param $day i32) local.get $this - local.get $value + local.get $day i32.store $0 offset=8 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -756,24 +756,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2509,14 +2509,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2571,9 +2571,9 @@ memory.fill $0 local.get $ptr ) - (func $~lib/date/Date#set:epochMillis (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/date/Date#set:epochMillis (type $i32_i64_=>_none) (param $this i32) (param $epochMillis i64) local.get $this - local.get $value + local.get $epochMillis i64.store $0 offset=16 ) (func $~lib/date/Date#get:epochMillis (type $i32_=>_i64) (param $this i32) (result i64) @@ -4010,9 +4010,9 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 98b09123c4..f62d7f84a7 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -72,14 +72,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -408,24 +408,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2161,14 +2161,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2291,42 +2291,42 @@ end end ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -2493,18 +2493,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -2670,28 +2670,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -2873,28 +2873,28 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -2923,80 +2923,80 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -3152,18 +3152,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load8_s $0 offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3456,18 +3456,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4167,42 +4167,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -4372,18 +4372,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4549,28 +4549,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -4599,42 +4599,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -4762,18 +4762,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load8_u $0 offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5469,42 +5469,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -5671,18 +5671,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5848,28 +5848,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -5898,42 +5898,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -6059,18 +6059,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load16_s $0 offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -6766,42 +6766,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -6971,18 +6971,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -7148,28 +7148,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -7198,42 +7198,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -7361,18 +7361,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load16_u $0 offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -8653,42 +8653,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -8852,18 +8852,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -9029,28 +9029,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -9079,42 +9079,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -9238,18 +9238,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -9945,42 +9945,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -10161,18 +10161,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -10338,28 +10338,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -10388,42 +10388,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -10547,18 +10547,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i64) (param $this i32) (result i64) local.get $this i64.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=16 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11262,42 +11262,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -11478,18 +11478,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11655,28 +11655,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -11705,42 +11705,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -11864,18 +11864,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/map/MapEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i64) (param $this i32) (result i64) local.get $this i64.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=16 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -12579,42 +12579,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f32_=>_i32) (param $key f32) (result i32) @@ -12779,18 +12779,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $key f32) local.get $this - local.get $value + local.get $key f32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -12956,28 +12956,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -13006,42 +13006,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -13165,18 +13165,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $~lib/map/MapEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $key f32) local.get $this - local.get $value + local.get $key f32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_f32) (param $this i32) (result f32) local.get $this f32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -13880,42 +13880,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f64_=>_i32) (param $key f64) (result i32) @@ -14097,18 +14097,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $key f64) local.get $this - local.get $value + local.get $key f64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=12 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -14274,28 +14274,28 @@ local.get $this call $~lib/map/Map#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -14324,42 +14324,42 @@ local.get $newLength call $~lib/array/Array#set:length_ ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) @@ -14483,18 +14483,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $~lib/map/MapEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $key f64) local.get $this - local.get $value + local.get $key f64.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_f64) (param $this i32) (result f64) local.get $this f64.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=16 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 91b7dc10be..cc53f68ceb 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -49,24 +49,24 @@ local.get $this i32.load $0 ) - (func $std/new/AClass#set:aField (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/new/AClass#set:aField (type $i32_i32_=>_none) (param $this i32) (param $aField i32) local.get $this - local.get $value + local.get $aField i32.store $0 ) - (func $std/new/AClass#set:anotherField (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $std/new/AClass#set:anotherField (type $i32_f32_=>_none) (param $this i32) (param $anotherField f32) local.get $this - local.get $value + local.get $anotherField f32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -395,24 +395,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2148,14 +2148,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 7f0d8be5c3..025064c3d2 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -114,14 +114,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -450,24 +450,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2203,14 +2203,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2265,14 +2265,14 @@ memory.fill $0 local.get $ptr ) - (func $std/operator-overloading/Tester#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/Tester#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) - (func $std/operator-overloading/Tester#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/Tester#set:y (type $i32_i32_=>_none) (param $this i32) (param $y i32) local.get $this - local.get $value + local.get $y i32.store $0 offset=4 ) (func $std/operator-overloading/Tester#get:x (type $i32_=>_i32) (param $this i32) (result i32) @@ -2859,14 +2859,14 @@ i32.sub call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/TesterInlineStatic#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterInlineStatic#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) - (func $std/operator-overloading/TesterInlineStatic#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterInlineStatic#set:y (type $i32_i32_=>_none) (param $this i32) (param $y i32) local.get $this - local.get $value + local.get $y i32.store $0 offset=4 ) (func $std/operator-overloading/TesterInlineStatic#get:x (type $i32_=>_i32) (param $this i32) (result i32) @@ -2877,14 +2877,14 @@ local.get $this i32.load $0 offset=4 ) - (func $std/operator-overloading/TesterInlineInstance#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterInlineInstance#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) - (func $std/operator-overloading/TesterInlineInstance#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterInlineInstance#set:y (type $i32_i32_=>_none) (param $this i32) (param $y i32) local.get $this - local.get $value + local.get $y i32.store $0 offset=4 ) (func $std/operator-overloading/TesterInlineInstance#get:x (type $i32_=>_i32) (param $this i32) (result i32) @@ -2895,14 +2895,14 @@ local.get $this i32.load $0 offset=4 ) - (func $std/operator-overloading/TesterElementAccess#set:x (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterElementAccess#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this - local.get $value + local.get $x i32.store $0 ) - (func $std/operator-overloading/TesterElementAccess#set:y (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/operator-overloading/TesterElementAccess#set:y (type $i32_i32_=>_none) (param $this i32) (param $y i32) local.get $this - local.get $value + local.get $y i32.store $0 offset=4 ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 813f1bd63a..7e6aa6827d 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -19,14 +19,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $std/pointer/Entry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/pointer/Entry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) - (func $std/pointer/Entry#set:val (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $std/pointer/Entry#set:val (type $i32_i32_=>_none) (param $this i32) (param $val i32) local.get $this - local.get $value + local.get $val i32.store $0 offset=4 ) (func $std/pointer/Entry#get:key (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 9d517fa8f7..f176e1cad7 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -67,14 +67,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -403,24 +403,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2156,14 +2156,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2286,42 +2286,42 @@ end end ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -2483,14 +2483,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -2721,28 +2721,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -3384,42 +3384,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -3584,14 +3584,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store8 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3822,28 +3822,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -4332,42 +4332,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -4529,14 +4529,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -4767,28 +4767,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -5277,42 +5277,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -5477,14 +5477,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store16 $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -5715,28 +5715,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -6225,42 +6225,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -6419,14 +6419,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -6657,28 +6657,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -7167,42 +7167,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) @@ -7361,14 +7361,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -7599,28 +7599,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -8109,42 +8109,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -8320,14 +8320,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -8558,28 +8558,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -9068,42 +9068,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $i64_=>_i32) (param $key i64) (result i32) @@ -9279,14 +9279,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $value i64) + (func $~lib/set/SetEntry#set:key (type $i32_i64_=>_none) (param $this i32) (param $key i64) local.get $this - local.get $value + local.get $key i64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -9517,28 +9517,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -10027,42 +10027,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f32_=>_i32) (param $key f32) (result i32) @@ -10222,14 +10222,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $value f32) + (func $~lib/set/SetEntry#set:key (type $i32_f32_=>_none) (param $this i32) (param $key f32) local.get $this - local.get $value + local.get $key f32.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=4 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -10460,28 +10460,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) @@ -10970,42 +10970,42 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/Set#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/util/hash/HASH (type $f64_=>_i32) (param $key f64) (result i32) @@ -11182,14 +11182,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/set/SetEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $value f64) + (func $~lib/set/SetEntry#set:key (type $i32_f64_=>_none) (param $this i32) (param $key f64) local.get $this - local.get $value + local.get $key f64.store $0 ) - (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/set/SetEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -11420,28 +11420,28 @@ local.get $this call $~lib/set/Set#get:entriesCount ) - (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 536a40c5ad..f873c295b7 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -113,23 +113,23 @@ local.get $this i32.load $0 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -450,24 +450,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2203,9 +2203,9 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2473,9 +2473,9 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) @@ -2563,9 +2563,9 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) @@ -2653,9 +2653,9 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) @@ -2743,9 +2743,9 @@ drop local.get $value ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#__uset (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index dd4cf82d4e..bbee052590 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -186,14 +186,14 @@ local.get $this i32.load $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -522,24 +522,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2275,14 +2275,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -3581,9 +3581,9 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index bff4bcb8d6..e6af28addc 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -235,14 +235,14 @@ i32.const 1 i32.shr_u ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -571,24 +571,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2324,14 +2324,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 2bcb711df1..9f5014f8f2 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -73,14 +73,14 @@ i32.sub call $~lib/rt/common/OBJECT#get:rtSize ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -409,24 +409,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2162,14 +2162,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 24732d6819..4276559c3f 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -791,14 +791,14 @@ i32.const 65536 i32.add ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -1127,24 +1127,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2880,14 +2880,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -6190,9 +6190,9 @@ i32.store $0 offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/array/Array<~lib/string/String>#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this - local.get $value + local.get $length_ i32.store $0 offset=12 ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index d99cc07c9b..db5913791e 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -102,14 +102,14 @@ end local.get $id ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -438,24 +438,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2191,14 +2191,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2321,80 +2321,80 @@ end end ) - (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) local.get $this - local.get $value + local.get $buckets i32.store $0 local.get $this - local.get $value + local.get $buckets i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) local.get $this - local.get $value + local.get $bucketsMask i32.store $0 offset=4 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) local.get $this - local.get $value + local.get $entries i32.store $0 offset=8 local.get $this - local.get $value + local.get $entries i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) local.get $this - local.get $value + local.get $entriesCapacity i32.store $0 offset=12 ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) local.get $this - local.get $value + local.get $entriesOffset i32.store $0 offset=16 ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) local.get $this - local.get $value + local.get $entriesCount i32.store $0 offset=20 ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) @@ -2891,14 +2891,14 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map<~lib/string/String,usize>#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) @@ -3196,18 +3196,18 @@ local.get $this i32.load $0 offset=8 ) - (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 ) (func $~lib/map/MapEntry#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/map/MapEntry#set:taggedNext (type $i32_i32_=>_none) (param $this i32) (param $taggedNext i32) local.get $this - local.get $value + local.get $taggedNext i32.store $0 offset=8 ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 26270817bc..96428af1e3 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -412,14 +412,14 @@ (elem $0 (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -748,24 +748,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2501,14 +2501,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -2631,23 +2631,23 @@ end end ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this - local.get $value + local.get $buffer i32.store $0 local.get $this - local.get $value + local.get $buffer i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (type $i32_i32_=>_none) (param $this i32) (param $dataStart i32) local.get $this - local.get $value + local.get $dataStart i32.store $0 offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (type $i32_i32_=>_none) (param $this i32) (param $byteLength i32) local.get $this - local.get $value + local.get $byteLength i32.store $0 offset=8 ) (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index c81f7951d4..ffb35eb1f9 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -116,14 +116,14 @@ i32.const 1 i32.shr_u ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -452,24 +452,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2205,14 +2205,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index d45b126b9a..74817c2fbb 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -43,14 +43,14 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -379,24 +379,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2132,14 +2132,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index b7cb5f7043..f4a2574023 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -266,14 +266,14 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -602,24 +602,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2355,14 +2355,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) @@ -4278,21 +4278,21 @@ local.get $right call $~lib/string/String#concat ) - (func $templateliteral/RecursiveObject#set:key (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $templateliteral/RecursiveObject#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this - local.get $value + local.get $key i32.store $0 local.get $this - local.get $value + local.get $key i32.const 0 call $~lib/rt/itcms/__link ) - (func $templateliteral/RecursiveObject#set:val (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $templateliteral/RecursiveObject#set:val (type $i32_i32_=>_none) (param $this i32) (param $val i32) local.get $this - local.get $value + local.get $val i32.store $0 offset=4 local.get $this - local.get $value + local.get $val i32.const 0 call $~lib/rt/itcms/__link ) diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index cf976c7bb8..8b69bc0da9 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -158,14 +158,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -494,24 +494,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 3b4b967f29..5f34c89395 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -225,14 +225,14 @@ (func $start:typeof~anonymous|0 (type $none_=>_none) nop ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -561,24 +561,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2314,14 +2314,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index 78304df09d..05c2daaa39 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -498,14 +498,14 @@ i32.const 1 global.set $while/ran ) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this - local.get $value + local.get $nextWithColor i32.store $0 offset=4 ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=8 ) (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) @@ -834,24 +834,24 @@ i32.and i32.add ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this - local.get $value + local.get $flMap i32.store $0 ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) local.get $this - local.get $value + local.get $mmInfo i32.store $0 ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this - local.get $value + local.get $prev i32.store $0 offset=4 ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) local.get $this - local.get $value + local.get $next i32.store $0 offset=8 ) (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) @@ -2587,14 +2587,14 @@ i32.const 4 i32.add ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this - local.get $value + local.get $rtId i32.store $0 offset=12 ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $value i32) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) local.get $this - local.get $value + local.get $rtSize i32.store $0 offset=16 ) (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) From 87e4eabe46c8c0bccdf519ad69c4b471d99d223c Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 19:06:53 +0100 Subject: [PATCH 07/13] unify bound functions and properties --- src/builtins.ts | 2 +- src/compiler.ts | 6 ++--- src/program.ts | 59 ++++++++++++++++++------------------------------- src/resolver.ts | 39 ++++++++++---------------------- 4 files changed, 37 insertions(+), 69 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index 46a28a4ba7..ef2e7dbb51 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -10267,7 +10267,7 @@ function ensureVisitMembersOf(compiler: Compiler, instance: Class): void { let property = (member).instance; if (!property) continue; let fieldType = property.type; - if (!property.isField || property.getClassOrInterface() != instance || !fieldType.isManaged) continue; + if (!property.isField || property.getBoundClassOrInterface() != instance || !fieldType.isManaged) continue; let fieldOffset = property.memoryOffset; assert(fieldOffset >= 0); needsTempValue = true; diff --git a/src/compiler.ts b/src/compiler.ts index 93047bd69c..35fe9c0f06 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6708,7 +6708,7 @@ export class Compiler extends DiagnosticEmitter { ) ); } - let classInstance = assert(overrideInstance.getClassOrInterface()); + let classInstance = assert(overrideInstance.getBoundClassOrInterface()); builder.addCase(classInstance.id, stmts); // Also alias each extendee inheriting this exact overload let extendees = classInstance.getAllExtendees(instance.declaration.name.text); // without get:/set: @@ -6724,7 +6724,7 @@ export class Compiler extends DiagnosticEmitter { // invalid id, but can reduce code size significantly since we also don't // have to add branches for extendees inheriting the original function. let body: ExpressionRef; - let instanceClass = instance.getClassOrInterface(); + let instanceClass = instance.getBoundClassOrInterface(); if (!instance.is(CommonFlags.Abstract) && !(instanceClass && instanceClass.kind == ElementKind.Interface)) { let paramExprs = new Array(numParameters); paramExprs[0] = module.local_get(0, sizeTypeRef); // this @@ -10072,7 +10072,7 @@ export class Compiler extends DiagnosticEmitter { if (member.kind != ElementKind.PropertyPrototype) continue; // only interested in fields (resolved during class finalization) let property = (member).instance; - if (!property || !property.isField || property.getClassOrInterface() != classInstance) continue; + if (!property || !property.isField || property.getBoundClassOrInterface() != classInstance) continue; assert(!property.isAny(CommonFlags.Const)); let fieldPrototype = property.prototype; let parameterIndex = fieldPrototype.parameterIndex; diff --git a/src/program.ts b/src/program.ts index 6082c9510e..d13f0005dd 100644 --- a/src/program.ts +++ b/src/program.ts @@ -2236,7 +2236,7 @@ export class Program extends DiagnosticEmitter { } let element = new FunctionPrototype( (isGetter ? GETTER_PREFIX : SETTER_PREFIX) + name, - property, + property.parent, // ! declaration, this.checkDecorators(declaration.decorators, DecoratorFlags.Inline | DecoratorFlags.Unsafe @@ -3001,6 +3001,26 @@ export abstract class Element { return (this.flags & vis) == (other.flags & vis); } + /** Tests if this element is bound to a class. */ + get isBound(): bool { + let parent = this.parent; + switch (parent.kind) { + case ElementKind.Class: + case ElementKind.Interface: return true; + } + return false; + } + + /** Gets the class or interface this element is bound to, if any. */ + getBoundClassOrInterface(): Class | null { + let parent = this.parent; + switch (parent.kind) { + case ElementKind.Class: + case ElementKind.Interface: return parent; + } + return null; + } + /** Returns a string representation of this element. */ toString(): string { return `${this.internalName}, kind=${this.kind}`; @@ -3593,14 +3613,6 @@ export class FunctionPrototype extends DeclaredElement { return (this.declaration).arrowKind; } - /** Tests if this prototype is bound to a class. */ - get isBound(): bool { - let parent = this.parent; - let parentKind = parent.kind; - if (parentKind == ElementKind.PropertyPrototype) parentKind = parent.parent.kind; - return parentKind == ElementKind.Class || parentKind == ElementKind.Interface; - } - /** Creates a clone of this prototype that is bound to a concrete class instead. */ toBound(classInstance: Class): FunctionPrototype { assert(this.is(CommonFlags.Instance)); @@ -3761,16 +3773,6 @@ export class Function extends TypedElement { : getDefaultParameterName(index); } - /** Gets the class or interface this function belongs to, if an instance method. */ - getClassOrInterface(): Class | null { - let parent = this.parent; - if (parent.kind == ElementKind.Property) parent = parent.parent; - if (parent.kind == ElementKind.Class || parent.kind == ElementKind.Interface) { - return parent; - } - return null; - } - /** Creates a stub for use with this function, i.e. for varargs or virtual calls. */ newStub(postfix: string): Function { let stub = new Function( @@ -3962,15 +3964,6 @@ export class PropertyPrototype extends DeclaredElement { return this.fieldDeclaration != null; } - /** Tests if this property prototype is bound to a class. */ - get isBound(): bool { - switch (this.parent.kind) { - case ElementKind.Class: - case ElementKind.Interface: return true; - } - return false; - } - /** Gets the associated type node. */ get typeNode(): TypeNode | null { let fieldDeclaration = this.fieldDeclaration; @@ -4088,16 +4081,6 @@ export class Property extends VariableLikeElement { get isField(): bool { return this.prototype.isField; } - - /** Gets the class or interface this property belongs to, if an instance property. */ - getClassOrInterface(): Class | null { - let parent = this.parent; - if (parent.kind == ElementKind.PropertyPrototype) parent = parent.parent; - if (parent.kind == ElementKind.Class || parent.kind == ElementKind.Interface) { - return parent; - } - return null; - } } /** A resolved index signature. */ diff --git a/src/resolver.ts b/src/resolver.ts index c8491c68a8..787f55ea0f 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -2728,17 +2728,12 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Function | null { - let isAccessor = prototype.parent.kind == ElementKind.PropertyPrototype; - let actualParent = isAccessor - ? prototype.parent.parent - : prototype.parent; let classInstance: Class | null = null; // if an instance method let instanceKey = typeArguments ? typesToString(typeArguments) : ""; // Instance method prototypes are pre-bound to their concrete class as their parent if (prototype.is(CommonFlags.Instance)) { - assert(actualParent.kind == ElementKind.Class || actualParent.kind == ElementKind.Interface); - classInstance = actualParent; + classInstance = assert(prototype.getBoundClassOrInterface()); // check if this exact concrete class and function combination is known already let resolvedInstance = prototype.getResolvedInstance(instanceKey); @@ -2757,7 +2752,7 @@ export class Resolver extends DiagnosticEmitter { } } } else { - assert(actualParent.kind != ElementKind.Class); // must not be pre-bound + assert(!prototype.isBound); let resolvedInstance = prototype.getResolvedInstance(instanceKey); if (resolvedInstance) return resolvedInstance; } @@ -2943,9 +2938,6 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Function | null { - let actualParent = prototype.parent.kind == ElementKind.PropertyPrototype - ? prototype.parent.parent - : prototype.parent; let resolvedTypeArguments: Type[] | null = null; // Resolve type arguments if generic @@ -2953,8 +2945,7 @@ export class Resolver extends DiagnosticEmitter { // If this is an instance method, first apply the class's type arguments if (prototype.is(CommonFlags.Instance)) { - assert(actualParent.kind == ElementKind.Class); - let classInstance = actualParent; + let classInstance = assert(prototype.getBoundClassOrInterface()); let classTypeArguments = classInstance.typeArguments; if (classTypeArguments) { let typeParameterNodes = assert(classInstance.prototype.typeParameterNodes); @@ -3006,7 +2997,7 @@ export class Resolver extends DiagnosticEmitter { let overridePrototypes = instance.prototype.overloads; if (!overridePrototypes) return null; - let parentClassInstance = assert(instance.getClassOrInterface()); + let parentClassInstance = assert(instance.getBoundClassOrInterface()); let overrides = new Set(); // A method's `overrides` property contains its unbound override prototypes @@ -3016,26 +3007,20 @@ export class Resolver extends DiagnosticEmitter { let unboundOverridePrototype = _values[i]; assert(!unboundOverridePrototype.isBound); let unboundOverrideParent = unboundOverridePrototype.parent; - let isProperty = unboundOverrideParent.kind == ElementKind.PropertyPrototype; let classInstances: Map | null; - if (isProperty) { - let propertyParent = (unboundOverrideParent).parent; - assert(propertyParent.kind == ElementKind.ClassPrototype); - classInstances = (propertyParent).instances; - } else { - assert(unboundOverrideParent.kind == ElementKind.ClassPrototype); - classInstances = (unboundOverrideParent).instances; - } + assert(unboundOverrideParent.kind == ElementKind.ClassPrototype); + classInstances = (unboundOverrideParent).instances; if (!classInstances) continue; for (let _values = Map_values(classInstances), j = 0, l = _values.length; j < l; ++j) { let classInstance = _values[j]; // Check if the parent class is a subtype of instance's class if (!classInstance.isAssignableTo(parentClassInstance)) continue; let overrideInstance: Function | null = null; - if (isProperty) { - let boundProperty = assert(classInstance.getMember(unboundOverrideParent.name)); - assert(boundProperty.kind == ElementKind.PropertyPrototype); - let boundPropertyInstance = this.resolveProperty(boundProperty); + if (instance.isAny(CommonFlags.Get | CommonFlags.Set)) { + let propertyName = instance.declaration.name.text; + let boundPropertyPrototype = assert(classInstance.getMember(propertyName)); + assert(boundPropertyPrototype.kind == ElementKind.PropertyPrototype); + let boundPropertyInstance = this.resolveProperty(boundPropertyPrototype); if (!boundPropertyInstance) continue; if (instance.is(CommonFlags.Get)) { overrideInstance = boundPropertyInstance.getterInstance; @@ -3612,7 +3597,7 @@ export class Resolver extends DiagnosticEmitter { ): Property | null { let instance = prototype.instance; if (instance) return instance; - prototype.instance = instance = new Property(prototype, prototype); + prototype.instance = instance = new Property(prototype, prototype.parent); let getterPrototype = prototype.getterPrototype; if (getterPrototype) { let getterInstance = this.resolveFunction( From 6bd67fb5c3c63b1da712bc1374461e40af5f43c7 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 19:19:20 +0100 Subject: [PATCH 08/13] clarify --- src/program.ts | 4 ++-- src/resolver.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/program.ts b/src/program.ts index d13f0005dd..11b6f2f9c4 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3624,7 +3624,7 @@ export class FunctionPrototype extends DeclaredElement { assert(declaration.kind == NodeKind.MethodDeclaration); let bound = new FunctionPrototype( this.name, - classInstance, // ! + classInstance, // now bound declaration, this.decoratorFlags ); @@ -4018,7 +4018,7 @@ export class PropertyPrototype extends DeclaredElement { assert(firstDeclaration.kind == NodeKind.MethodDeclaration); let bound = new PropertyPrototype( this.name, - classInstance, // ! + classInstance, // now bound firstDeclaration ); bound.flags = this.flags; diff --git a/src/resolver.ts b/src/resolver.ts index 787f55ea0f..9bf833b711 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -3597,7 +3597,10 @@ export class Resolver extends DiagnosticEmitter { ): Property | null { let instance = prototype.instance; if (instance) return instance; - prototype.instance = instance = new Property(prototype, prototype.parent); + prototype.instance = instance = new Property( + prototype, + prototype.parent // ! + ); let getterPrototype = prototype.getterPrototype; if (getterPrototype) { let getterInstance = this.resolveFunction( From 3d373946d58eb37777f14ed9b31e73a77ecda1c2 Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 4 Nov 2022 19:21:33 +0100 Subject: [PATCH 09/13] clarify more --- src/program.ts | 2 +- src/resolver.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/program.ts b/src/program.ts index 11b6f2f9c4..9b96bc9316 100644 --- a/src/program.ts +++ b/src/program.ts @@ -2236,7 +2236,7 @@ export class Program extends DiagnosticEmitter { } let element = new FunctionPrototype( (isGetter ? GETTER_PREFIX : SETTER_PREFIX) + name, - property.parent, // ! + property.parent, // same level as property declaration, this.checkDecorators(declaration.decorators, DecoratorFlags.Inline | DecoratorFlags.Unsafe diff --git a/src/resolver.ts b/src/resolver.ts index 9bf833b711..026fa8942f 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -3599,7 +3599,7 @@ export class Resolver extends DiagnosticEmitter { if (instance) return instance; prototype.instance = instance = new Property( prototype, - prototype.parent // ! + prototype.parent // same level as prototype ); let getterPrototype = prototype.getterPrototype; if (getterPrototype) { From 0eb99a75ae609c40d2c9452e992001ccb5c72053 Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 5 Nov 2022 04:12:17 +0100 Subject: [PATCH 10/13] set struct field names --- package-lock.json | 14 +++++++------- package.json | 2 +- src/module.ts | 19 +++++++++++++++++++ src/resolver.ts | 9 +++++++++ 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 686f835dde..59edf5a86b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "110.0.0-nightly.20221019", + "binaryen": "110.0.0-nightly.20221105", "long": "^5.2.0" }, "bin": { @@ -397,9 +397,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "110.0.0-nightly.20221019", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221019.tgz", - "integrity": "sha512-BmuVpV5hpeU1G9ENWQUslwaxbmol810S3+yd7xVJap+vrSQz7ybXiirwya1FfYSFtuDbfGYPfQAObiW5O2PS1w==", + "version": "110.0.0-nightly.20221105", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221105.tgz", + "integrity": "sha512-OBESOc51q3SwgG8Uv8nMzGnSq7LJpSB/Fu8B3AjlZg6YtCEwRnlDWlnwNB6mdql+VdexfKmNcsrs4K7MYidmdQ==", "bin": { "wasm-opt": "bin/wasm-opt", "wasm2js": "bin/wasm2js" @@ -2116,9 +2116,9 @@ "dev": true }, "binaryen": { - "version": "110.0.0-nightly.20221019", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221019.tgz", - "integrity": "sha512-BmuVpV5hpeU1G9ENWQUslwaxbmol810S3+yd7xVJap+vrSQz7ybXiirwya1FfYSFtuDbfGYPfQAObiW5O2PS1w==" + "version": "110.0.0-nightly.20221105", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221105.tgz", + "integrity": "sha512-OBESOc51q3SwgG8Uv8nMzGnSq7LJpSB/Fu8B3AjlZg6YtCEwRnlDWlnwNB6mdql+VdexfKmNcsrs4K7MYidmdQ==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 577e404e0e..788eb8ef3e 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "110.0.0-nightly.20221019", + "binaryen": "110.0.0-nightly.20221105", "long": "^5.2.0" }, "devDependencies": { diff --git a/src/module.ts b/src/module.ts index 361ee680fa..eb8644e4c2 100644 --- a/src/module.ts +++ b/src/module.ts @@ -3696,6 +3696,25 @@ export function ensureType(type: Type): TypeRef { if (DEBUG_TYPEBUILDER) { console.log(` set ${seenType.toString()}`); } + let classInstance = seenType.getClass(); + if (classInstance) { + let module = classInstance.program.module; + binaryen._BinaryenModuleSetTypeName(module.ref, heapType, module.allocStringCached(classInstance.internalName)); + let members = classInstance.members; + if (members) { + let numFieldsInType = binaryen._BinaryenStructTypeGetNumFields(heapType); + let numFieldsInClass = 0; + for (let _values = Map_values(members), i = 0, k = _values.length; i < k; ++i) { + let member = _values[i]; + if (member.kind != ElementKind.PropertyPrototype) continue; + // only interested in fields (resolved during class finalization) + let property = (member).instance; + if (!property || !property.isField) continue; + binaryen._BinaryenModuleSetFieldName(module.ref, heapType, numFieldsInClass++, module.allocStringCached(property.name)); + } + assert(numFieldsInType == numFieldsInClass); + } + } } binaryen._free(out); diff --git a/src/resolver.ts b/src/resolver.ts index 026fa8942f..7f3549edeb 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -3356,6 +3356,15 @@ export class Resolver extends DiagnosticEmitter { let existingPrototype = existingMember; let existingProperty = this.resolveProperty(existingPrototype, reportMode); if (existingProperty && existingProperty.isField) { + if (existingProperty.type != boundInstance.type) { + // make sure fields are invariant (Binaryen would otherwise error) + this.errorRelated( + DiagnosticCode.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, + boundInstance.identifierNode.range, existingProperty.identifierNode.range, + boundInstance.name, instance.internalName, base.internalName + ); + break; // keep existing + } boundInstance.memoryOffset = existingProperty.memoryOffset; needsLayout = false; } From ac6cd8751164a1451351772b98bac39f91812585 Mon Sep 17 00:00:00 2001 From: dcode Date: Sun, 6 Nov 2022 01:33:12 +0100 Subject: [PATCH 11/13] test, refactor --- src/common.ts | 4 +- src/compiler.ts | 66 +- src/diagnosticMessages.json | 2 + src/parser.ts | 4 +- src/program.ts | 247 +- src/resolver.ts | 10 +- tests/compiler/class-implements.debug.wat | 1118 +++++- tests/compiler/class-implements.release.wat | 1780 +++++++++- tests/compiler/class-implements.ts | 84 +- .../compiler/class-overloading-cast.debug.wat | 14 +- .../class-overloading-cast.release.wat | 24 +- tests/compiler/class-overloading.debug.wat | 54 +- tests/compiler/class-overloading.release.wat | 136 +- tests/compiler/do.release.wat | 30 +- tests/compiler/empty-new.release.wat | 30 +- .../exportstar-rereexport.release.wat | 30 +- tests/compiler/extends-recursive.release.wat | 14 +- tests/compiler/for.release.wat | 30 +- tests/compiler/function-call.release.wat | 30 +- .../compiler/function-expression.release.wat | 30 +- tests/compiler/getter-call.release.wat | 30 +- tests/compiler/infer-generic.release.wat | 30 +- tests/compiler/instanceof-class.release.wat | 14 +- tests/compiler/issues/1095.release.wat | 30 +- tests/compiler/issues/1225.release.wat | 30 +- tests/compiler/issues/2166.release.wat | 14 +- tests/compiler/issues/2322/index.release.wat | 30 +- tests/compiler/logical.release.wat | 30 +- tests/compiler/managed-cast.release.wat | 14 +- tests/compiler/new.release.wat | 14 +- .../optional-typeparameters.release.wat | 14 +- tests/compiler/reexport.release.wat | 30 +- tests/compiler/rereexport.release.wat | 30 +- tests/compiler/resolve-access.release.wat | 24 +- .../resolve-function-expression.release.wat | 128 +- tests/compiler/resolve-new.release.wat | 30 +- tests/compiler/rt/finalize.release.wat | 30 +- tests/compiler/rt/instanceof.release.wat | 14 +- tests/compiler/std/array.release.wat | 794 +++-- tests/compiler/std/math.release.wat | 13 +- tests/compiler/std/new.release.wat | 30 +- .../std/operator-overloading.release.wat | 14 +- tests/compiler/std/typedarray.release.wat | 3136 ++++++++--------- tests/compiler/super-inline.debug.wat | 4 +- tests/compiler/super-inline.release.wat | 18 +- tests/compiler/typeof.release.wat | 30 +- tests/compiler/while.release.wat | 30 +- 47 files changed, 5409 insertions(+), 2933 deletions(-) diff --git a/src/common.ts b/src/common.ts index 6206dad9f0..bb9244f468 100644 --- a/src/common.ts +++ b/src/common.ts @@ -73,8 +73,8 @@ export const enum CommonFlags { Scoped = 1 << 26, /** Is a stub. */ Stub = 1 << 27, - /** Is a virtual method. */ - Virtual = 1 << 28, + /** Is an overridden method. */ + Overridden = 1 << 28, /** Is (part of) a closure. */ Closure = 1 << 29, diff --git a/src/compiler.ts b/src/compiler.ts index 40e7233f12..92c5014a4f 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -420,8 +420,8 @@ export class Compiler extends DiagnosticEmitter { lazyFunctions: Set = new Set(); /** Pending class-specific instanceof helpers. */ pendingClassInstanceOf: Set = new Set(); - /** Virtually called stubs that may have overrides. */ - virtualStubs: Set = new Set(); + /** Stubs to defer calls to overridden methods. */ + overrideStubs: Set = new Set(); /** Elements currently undergoing compilation. */ pendingElements: Set = new Set(); /** Elements, that are module exports, already processed */ @@ -561,24 +561,24 @@ export class Compiler extends DiagnosticEmitter { compileClassInstanceOf(this, prototype); } - // set up virtual stubs + // set up override stubs let functionTable = this.functionTable; - let virtualStubs = this.virtualStubs; + let overrideStubs = this.overrideStubs; for (let i = 0, k = functionTable.length; i < k; ++i) { let instance = functionTable[i]; - if (instance.is(CommonFlags.Virtual)) { + if (instance.is(CommonFlags.Overridden)) { assert(instance.is(CommonFlags.Instance)); - functionTable[i] = this.ensureVirtualStub(instance); // includes varargs stub + functionTable[i] = this.ensureOverrideStub(instance); // includes varargs stub } else if (instance.signature.requiredParameters < instance.signature.parameterTypes.length) { functionTable[i] = this.ensureVarargsStub(instance); } } - let virtualStubsSeen = new Set(); + let overrrideStubsSeen = new Set(); do { - // virtual stubs and overrides have cross-dependencies on each other, in that compiling + // override stubs and overrides have cross-dependencies on each other, in that compiling // either may discover the respective other. do this in a loop until no more are found. resolver.discoveredOverride = false; - for (let _values = Set_values(virtualStubs), i = 0, k = _values.length; i < k; ++i) { + for (let _values = Set_values(overrideStubs), i = 0, k = _values.length; i < k; ++i) { let instance = unchecked(_values[i]); let overrideInstances = resolver.resolveOverrides(instance); if (overrideInstances) { @@ -586,12 +586,12 @@ export class Compiler extends DiagnosticEmitter { this.compileFunction(overrideInstances[i]); } } - virtualStubsSeen.add(instance); + overrrideStubsSeen.add(instance); } - } while (virtualStubs.size > virtualStubsSeen.size || resolver.discoveredOverride); - virtualStubsSeen.clear(); - for (let _values = Set_values(virtualStubs), i = 0, k = _values.length; i < k; ++i) { - this.finalizeVirtualStub(_values[i]); + } while (overrideStubs.size > overrrideStubsSeen.size || resolver.discoveredOverride); + overrrideStubsSeen.clear(); + for (let _values = Set_values(overrideStubs), i = 0, k = _values.length; i < k; ++i) { + this.finalizeOverrideStub(_values[i]); } // finalize runtime features @@ -3019,7 +3019,7 @@ export class Compiler extends DiagnosticEmitter { } } if (local) { - // Add as a virtual local that doesn't actually exist in WebAssembly + // Add as a dummy local that doesn't actually exist in WebAssembly let scopedLocals = flow.scopedLocals; if (!scopedLocals) flow.scopedLocals = scopedLocals = new Map(); else if (scopedLocals.has(name)) { @@ -6340,7 +6340,7 @@ export class Compiler extends DiagnosticEmitter { } // Inline if explicitly requested - if (instance.hasDecorator(DecoratorFlags.Inline) && (!instance.is(CommonFlags.Virtual) || reportNode.isAccessOnSuper)) { + if (instance.hasDecorator(DecoratorFlags.Inline) && (!instance.is(CommonFlags.Overridden) || reportNode.isAccessOnSuper)) { assert(!instance.is(CommonFlags.Stub)); // doesn't make sense let inlineStack = this.inlineStack; if (inlineStack.includes(instance)) { @@ -6603,17 +6603,17 @@ export class Compiler extends DiagnosticEmitter { return stub; } - /** Ensures compilation of the virtual stub for the specified function. */ - ensureVirtualStub(original: Function): Function { - // A virtual stub is a function redirecting virtual calls to the actual + /** Ensures compilation of the override stub for the specified function. */ + ensureOverrideStub(original: Function): Function { + // An override stub is a function redirecting virtual calls to the actual // override targeted by the call. It utilizes varargs stubs where necessary // and as such has the same semantics as one. Here, we only make sure that // a placeholder exist, with actual code being generated as a finalization // step once module compilation is otherwise complete. - let stub = original.virtualStub; + let stub = original.overrideStub; if (stub) return stub; - stub = original.newStub("virtual"); - original.virtualStub = stub; + stub = original.newStub("override"); + original.overrideStub = stub; let module = this.module; stub.ref = module.addFunction( stub.internalName, @@ -6622,13 +6622,13 @@ export class Compiler extends DiagnosticEmitter { null, module.unreachable() ); - this.virtualStubs.add(original); + this.overrideStubs.add(original); return stub; } - /** Finalizes the virtual stub of the specified function. */ - private finalizeVirtualStub(instance: Function): void { - let stub = this.ensureVirtualStub(instance); + /** Finalizes the override stub of the specified function. */ + private finalizeOverrideStub(instance: Function): void { + let stub = this.ensureOverrideStub(instance); if (stub.is(CommonFlags.Compiled)) return; assert(instance.parent.kind == ElementKind.Class || instance.parent.kind == ElementKind.Interface); @@ -6737,7 +6737,7 @@ export class Compiler extends DiagnosticEmitter { body = module.unreachable(); } - // Create the virtual stub function + // Create the stub function let ref = stub.ref; if (ref) module.removeFunction(stub.internalName); stub.ref = module.addFunction( @@ -6794,7 +6794,7 @@ export class Compiler extends DiagnosticEmitter { immediatelyDropped: bool = false ): ExpressionRef { if (instance.hasDecorator(DecoratorFlags.Inline)) { - if (!instance.is(CommonFlags.Virtual)) { + if (!instance.is(CommonFlags.Overridden)) { assert(!instance.is(CommonFlags.Stub)); // doesn't make sense let inlineStack = this.inlineStack; if (inlineStack.includes(instance)) { @@ -6912,9 +6912,9 @@ export class Compiler extends DiagnosticEmitter { } } - // Call the virtual stub with the vtable if the function has overloads - if (instance.is(CommonFlags.Virtual) && !reportNode.isAccessOnSuper) { - instance = this.ensureVirtualStub(instance); + // Call the override stub if the function has overloads + if (instance.is(CommonFlags.Overridden) && !reportNode.isAccessOnSuper) { + instance = this.ensureOverrideStub(instance); } if (operands) this.operandsTostack(instance.signature, operands); @@ -8388,9 +8388,7 @@ export class Compiler extends DiagnosticEmitter { // This member is no longer omitted, so delete from our omitted fields omittedFields.delete(propertyInstance); - // Defer real properties to be set after fields are initialized. In - // constructions, whether the field is virtual is irrelevant because - // it is guaranteed to be not actually overloaded. + // Defer real properties to be set after fields are initialized if (!propertyInstance.isField) { deferredProperties.push(propertyInstance); continue; diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index dc1114bfee..a93ceb4eeb 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -182,6 +182,8 @@ "Expected {0} type arguments, but got {1}.": 2558, "Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.": 2564, "Property '{0}' is used before being assigned.": 2565, + "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.": 2610, + "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.": 2611, "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.": 2651, "Constructor of class '{0}' is private and only accessible within the class declaration.": 2673, "Constructor of class '{0}' is protected and only accessible within the class declaration.": 2674, diff --git a/src/parser.ts b/src/parser.ts index 1ab2d3e915..38e8be6269 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -1889,8 +1889,8 @@ export class Parser extends DiagnosticEmitter { // inherit ambient status let flags = parent.flags & CommonFlags.Ambient; - // implemented methods are virtual - if (isInterface) flags |= CommonFlags.Virtual; + // interface methods are always overridden if used + if (isInterface) flags |= CommonFlags.Overridden; let declareStart = 0; let declareEnd = 0; diff --git a/src/program.ts b/src/program.ts index b16d2fb9fd..accd520b30 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1423,12 +1423,12 @@ export class Program extends DiagnosticEmitter { } } - // check for virtual overloads in extended classes and implemented interfaces + // process overrides in extended classes and implemented interfaces for (let i = 0, k = queuedExtends.length; i < k; ++i) { let thisPrototype = queuedExtends[i]; let basePrototype = thisPrototype.basePrototype; if (basePrototype) { - this.markVirtuals(thisPrototype, basePrototype); + this.processOverrides(thisPrototype, basePrototype); } } for (let i = 0, k = queuedImplements.length; i < k; ++i) { @@ -1436,11 +1436,11 @@ export class Program extends DiagnosticEmitter { let basePrototype = thisPrototype.basePrototype; let interfacePrototypes = thisPrototype.interfacePrototypes; if (basePrototype) { - this.markVirtuals(thisPrototype, basePrototype); + this.processOverrides(thisPrototype, basePrototype); } if (interfacePrototypes) { for (let j = 0, l = interfacePrototypes.length; j < l; ++j) { - this.markVirtuals(thisPrototype, interfacePrototypes[j]); + this.processOverrides(thisPrototype, interfacePrototypes[j]); } } } @@ -1497,9 +1497,13 @@ export class Program extends DiagnosticEmitter { } } - /** Marks virtual members in a base class overloaded in this class. */ - private markVirtuals(thisPrototype: ClassPrototype, basePrototype: ClassPrototype): void { - // TODO: make this work with interfaaces as well + /** Processes overridden members by this class in a base class. */ + private processOverrides( + thisPrototype: ClassPrototype, + basePrototype: ClassPrototype, + ): void { + // Note that we don't know concrete instances of class members, yet. Type + // checking of concrete (generic) instances happens upon resolve. let thisInstanceMembers = thisPrototype.instanceMembers; if (thisInstanceMembers) { let thisMembers = Map_values(thisInstanceMembers); @@ -1508,87 +1512,20 @@ export class Program extends DiagnosticEmitter { if (baseInstanceMembers) { for (let j = 0, l = thisMembers.length; j < l; ++j) { let thisMember = thisMembers[j]; - if ( - !thisMember.isAny(CommonFlags.Constructor | CommonFlags.Private) && - baseInstanceMembers.has(thisMember.name) - ) { + if (baseInstanceMembers.has(thisMember.name)) { let baseMember = assert(baseInstanceMembers.get(thisMember.name)); - if ( - thisMember.kind == ElementKind.FunctionPrototype && - baseMember.kind == ElementKind.FunctionPrototype - ) { - let thisMethod = thisMember; - let baseMethod = baseMember; - if (!thisMethod.visibilityEquals(baseMethod)) { - this.errorRelated( - DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, - thisMethod.identifierNode.range, baseMethod.identifierNode.range - ); - } - baseMember.set(CommonFlags.Virtual); - let overloads = baseMethod.overloads; - if (!overloads) baseMethod.overloads = overloads = new Set(); - overloads.add(thisMember); - let baseMethodInstances = baseMethod.instances; - if (baseMethodInstances) { - for (let _values = Map_values(baseMethodInstances), a = 0, b = _values.length; a < b; ++a) { - let baseMethodInstance = _values[a]; - baseMethodInstance.set(CommonFlags.Virtual); - } - } - } else if ( - thisMember.kind == ElementKind.PropertyPrototype && - baseMember.kind == ElementKind.PropertyPrototype - ) { - let thisProperty = thisMember; - let baseProperty = baseMember; - if (!thisProperty.visibilityEquals(baseProperty)) { - this.errorRelated( - DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, - thisProperty.identifierNode.range, baseProperty.identifierNode.range - ); - } - if (thisProperty.isField && basePrototype.kind != ElementKind.InterfacePrototype) { - // fields cannot be overridden (only redeclared with same type), except if - // declared in an interface, then making the field behave like a property - continue; - } - baseProperty.set(CommonFlags.Virtual); - let baseGetter = baseProperty.getterPrototype; - if (baseGetter) { - baseGetter.set(CommonFlags.Virtual); - let thisGetter = thisProperty.getterPrototype; - if (thisGetter) { - let overloads = baseGetter.overloads; - if (!overloads) baseGetter.overloads = overloads = new Set(); - overloads.add(thisGetter); - } - let baseGetterInstances = baseGetter.instances; - if (baseGetterInstances) { - for (let _values = Map_values(baseGetterInstances), a = 0, b = _values.length; a < b; ++a) { - let baseGetterInstance = _values[a]; - baseGetterInstance.set(CommonFlags.Virtual); - } - } - } - let baseSetter = baseProperty.setterPrototype; - if (baseSetter && thisProperty.setterPrototype) { - baseSetter.set(CommonFlags.Virtual); - let thisSetter = thisProperty.setterPrototype; - if (thisSetter) { - let overloads = baseSetter.overloads; - if (!overloads) baseSetter.overloads = overloads = new Set(); - overloads.add(thisSetter); - } - let baseSetterInstances = baseSetter.instances; - if (baseSetterInstances) { - for (let _values = Map_values(baseSetterInstances), a = 0, b = _values.length; a < b; ++a) { - let baseSetterInstance = _values[a]; - baseSetterInstance.set(CommonFlags.Virtual); - } - } - } - } + this.doProcessOverride(thisPrototype, thisMember, basePrototype, baseMember); + } + } + } + // A class can have a base class and multiple interfaces, but from the + // base member alone we only get one. Make sure we don't miss any. + let baseInterfacePrototypes = basePrototype.interfacePrototypes; + if (baseInterfacePrototypes) { + for (let i = 0, k = baseInterfacePrototypes.length; i < k; ++i) { + let baseInterfacePrototype = baseInterfacePrototypes[i]; + if (baseInterfacePrototype != basePrototype) { + this.processOverrides(thisPrototype, baseInterfacePrototype); } } } @@ -1599,6 +1536,118 @@ export class Program extends DiagnosticEmitter { } } + /** Processes a single overridden member by this class in a base class. */ + private doProcessOverride( + thisClass: ClassPrototype, + thisMember: DeclaredElement, + baseClass: ClassPrototype, + baseMember: DeclaredElement + ): void { + // Constructors and private members do not override + if (thisMember.isAny(CommonFlags.Constructor | CommonFlags.Private)) return; + if ( + thisMember.kind == ElementKind.FunctionPrototype && + baseMember.kind == ElementKind.FunctionPrototype + ) { + let thisMethod = thisMember; + let baseMethod = baseMember; + if (!thisMethod.visibilityEquals(baseMethod)) { + this.errorRelated( + DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, + thisMethod.identifierNode.range, baseMethod.identifierNode.range + ); + } + baseMember.set(CommonFlags.Overridden); + let overrides = baseMethod.unboundOverrides; + if (!overrides) baseMethod.unboundOverrides = overrides = new Set(); + overrides.add(thisMember); + let baseMethodInstances = baseMethod.instances; + if (baseMethodInstances) { + for (let _values = Map_values(baseMethodInstances), a = 0, b = _values.length; a < b; ++a) { + let baseMethodInstance = _values[a]; + baseMethodInstance.set(CommonFlags.Overridden); + } + } + } else if ( + thisMember.kind == ElementKind.PropertyPrototype && + baseMember.kind == ElementKind.PropertyPrototype + ) { + let thisProperty = thisMember; + let baseProperty = baseMember; + if (!thisProperty.visibilityEquals(baseProperty)) { + this.errorRelated( + DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, + thisProperty.identifierNode.range, baseProperty.identifierNode.range + ); + } + if (baseProperty.parent.kind != ElementKind.InterfacePrototype) { + // Interface fields/properties can be implemented by either, but other + // members must match to retain compatiblity with TS/JS. + let thisIsField = thisProperty.isField; + if (thisIsField != baseProperty.isField) { + if (thisIsField) { // base is property + this.errorRelated( + DiagnosticCode._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property, + thisProperty.identifierNode.range, baseProperty.identifierNode.range, + thisProperty.name, baseClass.internalName, thisClass.internalName + ); + } else { // this is property, base is field + this.errorRelated( + DiagnosticCode._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor, + thisProperty.identifierNode.range, baseProperty.identifierNode.range, + thisProperty.name, baseClass.internalName, thisClass.internalName + ); + } + return; + } else if (thisIsField) { // base is also field + // Fields don't override other fields and can only be redeclared + return; + } + } + baseProperty.set(CommonFlags.Overridden); + let baseGetter = baseProperty.getterPrototype; + if (baseGetter) { + baseGetter.set(CommonFlags.Overridden); + let thisGetter = thisProperty.getterPrototype; + if (thisGetter) { + let overrides = baseGetter.unboundOverrides; + if (!overrides) baseGetter.unboundOverrides = overrides = new Set(); + overrides.add(thisGetter); + } + let baseGetterInstances = baseGetter.instances; + if (baseGetterInstances) { + for (let _values = Map_values(baseGetterInstances), a = 0, b = _values.length; a < b; ++a) { + let baseGetterInstance = _values[a]; + baseGetterInstance.set(CommonFlags.Overridden); + } + } + } + let baseSetter = baseProperty.setterPrototype; + if (baseSetter && thisProperty.setterPrototype) { + baseSetter.set(CommonFlags.Overridden); + let thisSetter = thisProperty.setterPrototype; + if (thisSetter) { + let overrides = baseSetter.unboundOverrides; + if (!overrides) baseSetter.unboundOverrides = overrides = new Set(); + overrides.add(thisSetter); + } + let baseSetterInstances = baseSetter.instances; + if (baseSetterInstances) { + for (let _values = Map_values(baseSetterInstances), a = 0, b = _values.length; a < b; ++a) { + let baseSetterInstance = _values[a]; + baseSetterInstance.set(CommonFlags.Overridden); + } + } + } + } else { + this.errorRelated( + DiagnosticCode.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, + thisMember.identifierNode.range, baseMember.identifierNode.range, + thisMember.name, thisClass.internalName, baseClass.internalName + ); + } + } + /** Looks up the element of the specified name in the global scope. */ lookup(name: string): Element | null { let elements = this.elementsByName; @@ -2144,7 +2193,7 @@ export class Program extends DiagnosticEmitter { firstArg.range, text ); } else { - let overloads = classPrototype.overloadPrototypes; + let overloads = classPrototype.operatorOverloadPrototypes; if (overloads.has(kind)) { this.error( DiagnosticCode.Duplicate_function_implementation, @@ -3539,7 +3588,7 @@ export class Local extends VariableLikeElement { constructor( /** Simple name. */ name: string, - /** Zero-based index within the enclosing function. `-1` indicates a virtual local. */ + /** Zero-based index within the enclosing function. `-1` indicates a dummy local. */ public index: i32, /** Resolved type. */ type: Type, @@ -3568,8 +3617,8 @@ export class FunctionPrototype extends DeclaredElement { operatorKind: OperatorKind = OperatorKind.Invalid; /** Already resolved instances. */ instances: Map | null = null; - /** Methods overloading this one, if any. These are unbound. */ - overloads: Set | null = null; + /** Methods overriding this one, if any. These are unbound. */ + unboundOverrides: Set | null = null; /** Clones of this prototype that are bound to specific classes. */ private boundPrototypes: Map | null = null; @@ -3633,7 +3682,7 @@ export class FunctionPrototype extends DeclaredElement { ); bound.flags = this.flags; bound.operatorKind = this.operatorKind; - bound.overloads = this.overloads; + bound.unboundOverrides = this.unboundOverrides; // NOTE: this.instances holds instances per bound class / unbound boundPrototypes.set(classInstance, bound); return bound; @@ -3676,8 +3725,8 @@ export class Function extends TypedElement { ref: FunctionRef = 0; /** Varargs stub for calling with omitted arguments. */ varargsStub: Function | null = null; - /** Virtual stub for calling overloads. */ - virtualStub: Function | null = null; + /** Stub for calling overrides. */ + overrideStub: Function | null = null; /** Runtime memory segment, if created. */ memorySegment: MemorySegment | null = null; /** Original function, if a stub. Otherwise `this`. */ @@ -3776,7 +3825,7 @@ export class Function extends TypedElement { : getDefaultParameterName(index); } - /** Creates a stub for use with this function, i.e. for varargs or virtual calls. */ + /** Creates a stub for use with this function, i.e. for varargs or override calls. */ newStub(postfix: string): Function { let stub = new Function( this.original.name + STUB_DELIMITER + postfix, @@ -3897,7 +3946,7 @@ export class PropertyPrototype extends DeclaredElement { // As a result, explicit and implicit accessors can override each other, // which is useful when implementing interfaces declaring "fields". Such // fields are satisfied by either a field or a normal property, so the - // virtual stub at the interface needs to handle both interchangeably. + // override stub at the interface needs to handle both interchangeably. let nativeRange = Source.native.range; let typeNode = fieldDeclaration.type; if (!typeNode) typeNode = Node.createOmittedType(fieldDeclaration.name.range.atEnd); @@ -4127,7 +4176,7 @@ export class ClassPrototype extends DeclaredElement { /** Constructor prototype. */ constructorPrototype: FunctionPrototype | null = null; /** Operator overload prototypes. */ - overloadPrototypes: Map = new Map(); + operatorOverloadPrototypes: Map = new Map(); /** Already resolved instances. */ instances: Map | null = null; /** Classes extending this class. */ @@ -4256,7 +4305,7 @@ export class Class extends TypedElement { /** Constructor instance. */ constructorInstance: Function | null = null; /** Operator overloads. */ - overloads: Map | null = null; + operatorOverloads: Map | null = null; /** Index signature, if present. */ indexSignature: IndexSignature | null = null; /** Unique class id. */ @@ -4436,7 +4485,7 @@ export class Class extends TypedElement { } let instance: Class | null = this; do { - let overloads = instance.overloads; + let overloads = instance.operatorOverloads; if (overloads != null && overloads.has(kind)) { return assert(overloads.get(kind)); } diff --git a/src/resolver.ts b/src/resolver.ts index 7f3549edeb..14578b718e 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -2877,7 +2877,7 @@ export class Resolver extends DiagnosticEmitter { if (baseClass) { let baseMember = baseClass.getMember(methodOrPropertyName); if (baseMember) { - // note override discovery for virtual stub finalization + // note override discovery (used by stub finalization) this.discoveredOverride = true; // verify that this is a compatible override let incompatibleOverride = true; @@ -2994,7 +2994,7 @@ export class Resolver extends DiagnosticEmitter { /** Resolves reachable overrides of the given instance method. */ resolveOverrides(instance: Function): Function[] | null { - let overridePrototypes = instance.prototype.overloads; + let overridePrototypes = instance.prototype.unboundOverrides; if (!overridePrototypes) return null; let parentClassInstance = assert(instance.getBoundClassOrInterface()); @@ -3451,7 +3451,7 @@ export class Resolver extends DiagnosticEmitter { } // Fully resolve operator overloads (don't have type parameters on their own) - let overloadPrototypes = prototype.overloadPrototypes; + let overloadPrototypes = prototype.operatorOverloadPrototypes; // TODO: for (let [overloadKind, overloadPrototype] of overloadPrototypes) { for (let _keys = Map_keys(overloadPrototypes), i = 0, k = _keys.length; i < k; ++i) { let overloadKind = unchecked(_keys[i]); @@ -3479,8 +3479,8 @@ export class Resolver extends DiagnosticEmitter { ); } if (!operatorInstance) continue; - let overloads = instance.overloads; - if (!overloads) instance.overloads = overloads = new Map(); + let overloads = instance.operatorOverloads; + if (!overloads) instance.operatorOverloads = overloads = new Map(); // inc/dec are special in that an instance overload attempts to re-assign // the corresponding value, thus requiring a matching return type, while a // static overload works like any other overload. diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index 3fca1c91d3..a6440fd2ad 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -31,9 +31,9 @@ (global $class-implements/g (mut i32) (i32.const 0)) (global $class-implements/h (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 480)) - (global $~lib/memory/__data_end i32 (i32.const 572)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33340)) - (global $~lib/memory/__heap_base i32 (i32.const 33340)) + (global $~lib/memory/__data_end i32 (i32.const 628)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33396)) + (global $~lib/memory/__heap_base i32 (i32.const 33396)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -44,7 +44,7 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 480) "\0b\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\07\00\00\00 \00\00\00\07\00\00\00") + (data (i32.const 480) "\12\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\07\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0b\00\00\00 \00\00\00\0b\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0f\00\00\00 \00\00\00\0f\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -2215,7 +2215,94 @@ (func $class-implements/I#foo (type $i32_=>_i32) (param $this i32) (result i32) unreachable ) - (func $class-implements/D#foo@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $class-implements/A2#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + i32.store $0 + ) + (func $class-implements/A2#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class-implements/I2#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + unreachable + ) + (func $class-implements/I2#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + unreachable + ) + (func $class-implements/A3#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + i32.store $0 + ) + (func $class-implements/A3#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class-implements/A4#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + i32.store $0 + ) + (func $class-implements/A4#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class-implements/B2#set:_foo (type $i32_i32_=>_none) (param $this i32) (param $_foo i32) + local.get $this + local.get $_foo + i32.store $0 + ) + (func $class-implements/B2#get:_foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $class-implements/B2#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $class-implements/B2#get:_foo + ) + (func $class-implements/B3#set:_foo2 (type $i32_i32_=>_none) (param $this i32) (param $_foo2 i32) + local.get $this + local.get $_foo2 + i32.store $0 offset=4 + ) + (func $class-implements/B3#get:_foo2 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $class-implements/B3#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $class-implements/B3#get:_foo2 + ) + (func $class-implements/B4#set:_foo2 (type $i32_i32_=>_none) (param $this i32) (param $_foo2 i32) + local.get $this + local.get $_foo2 + i32.store $0 offset=4 + ) + (func $class-implements/B4#get:_foo2 (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $class-implements/B4#get:foo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $class-implements/B4#get:_foo2 + ) + (func $class-implements/B3#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + call $class-implements/B3#set:_foo2 + ) + (func $class-implements/B4#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + call $class-implements/B4#set:_foo2 + ) + (func $class-implements/B2#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) + local.get $this + local.get $foo + call $class-implements/B2#set:_foo + ) + (func $class-implements/D#foo@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case0 @@ -2237,7 +2324,7 @@ local.get $0 call $class-implements/D#foo ) - (func $class-implements/I#foo@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $class-implements/I#foo@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case3 @@ -2250,45 +2337,214 @@ i32.load $0 local.set $1 local.get $1 - i32.const 3 + i32.const 10 i32.eq br_if $case0 local.get $1 - i32.const 5 + i32.const 3 i32.eq br_if $case1 local.get $1 - i32.const 7 + i32.const 5 i32.eq br_if $case2 local.get $1 - i32.const 9 + i32.const 7 i32.eq - br_if $case2 + br_if $case3 local.get $1 - i32.const 10 + i32.const 9 i32.eq br_if $case3 br $default end local.get $0 - call $class-implements/A#foo + call $class-implements/F#foo return end local.get $0 - call $class-implements/C#foo + call $class-implements/A#foo return end local.get $0 - call $class-implements/D#foo + call $class-implements/C#foo return end local.get $0 - call $class-implements/F#foo + call $class-implements/D#foo + return + end + unreachable + ) + (func $class-implements/I2#get:foo@override (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case5 + block $case4 + block $case3 + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 13 + i32.eq + br_if $case0 + local.get $1 + i32.const 14 + i32.eq + br_if $case1 + local.get $1 + i32.const 16 + i32.eq + br_if $case2 + local.get $1 + i32.const 17 + i32.eq + br_if $case3 + local.get $1 + i32.const 11 + i32.eq + br_if $case4 + local.get $1 + i32.const 15 + i32.eq + br_if $case5 + br $default + end + local.get $0 + call $class-implements/A3#get:foo + return + end + local.get $0 + call $class-implements/A4#get:foo + return + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + call $class-implements/B4#get:foo + return + end + local.get $0 + call $class-implements/A2#get:foo + return + end + local.get $0 + call $class-implements/B2#get:foo + return + end + unreachable + ) + (func $class-implements/I2#set:foo@override (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + block $default + block $case5 + block $case4 + block $case3 + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $2 + local.get $2 + i32.const 13 + i32.eq + br_if $case0 + local.get $2 + i32.const 14 + i32.eq + br_if $case1 + local.get $2 + i32.const 16 + i32.eq + br_if $case2 + local.get $2 + i32.const 17 + i32.eq + br_if $case3 + local.get $2 + i32.const 11 + i32.eq + br_if $case4 + local.get $2 + i32.const 15 + i32.eq + br_if $case5 + br $default + end + local.get $0 + local.get $1 + call $class-implements/A3#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/A4#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/B3#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/B4#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/A2#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/B2#set:foo return end unreachable ) + (func $class-implements/B2#get:foo@override (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 16 + i32.eq + br_if $case0 + local.get $1 + i32.const 17 + i32.eq + br_if $case1 + br $default + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + call $class-implements/B4#get:foo + return + end + local.get $0 + call $class-implements/B2#get:foo + ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $class-implements/a @@ -2360,30 +2616,51 @@ ) (func $~lib/rt/__visit_members (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) block $invalid - block $class-implements/F - block $class-implements/E - block $class-implements/J - block $class-implements/D - block $class-implements/B - block $class-implements/C - block $class-implements/I - block $class-implements/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $invalid + block $class-implements/B4 + block $class-implements/B3 + block $class-implements/B2 + block $class-implements/A4 + block $class-implements/A3 + block $class-implements/I2 + block $class-implements/A2 + block $class-implements/F + block $class-implements/E + block $class-implements/J + block $class-implements/D + block $class-implements/B + block $class-implements/C + block $class-implements/I + block $class-implements/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $class-implements/A2 $class-implements/I2 $class-implements/A3 $class-implements/A4 $class-implements/B2 $class-implements/B3 $class-implements/B4 $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return end return end return end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit return end return @@ -2412,8 +2689,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33360 - i32.const 33408 + i32.const 33424 + i32.const 33472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2422,14 +2699,21 @@ ) (func $start:class-implements (type $none_=>_none) (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 + i32.const 28 + memory.fill $0 memory.size $0 i32.const 16 i32.shl @@ -2451,11 +2735,11 @@ call $class-implements/A#constructor global.set $class-implements/a global.get $class-implements/a - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 + local.get $6 call $class-implements/A#foo i32.const 1 i32.eq @@ -2472,11 +2756,11 @@ call $class-implements/C#constructor global.set $class-implements/c global.get $class-implements/c - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 + local.get $6 call $class-implements/C#foo i32.const 2 i32.eq @@ -2493,12 +2777,12 @@ call $class-implements/D#constructor global.set $class-implements/d global.get $class-implements/d - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 - call $class-implements/D#foo@virtual + local.get $6 + call $class-implements/D#foo@override i32.const 3 i32.eq i32.eqz @@ -2514,12 +2798,12 @@ call $class-implements/E#constructor global.set $class-implements/e global.get $class-implements/e - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 - call $class-implements/D#foo@virtual + local.get $6 + call $class-implements/D#foo@override i32.const 3 i32.eq i32.eqz @@ -2535,11 +2819,11 @@ call $class-implements/F#constructor global.set $class-implements/f global.get $class-implements/f - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 + local.get $6 call $class-implements/F#foo i32.const 4 i32.eq @@ -2556,12 +2840,12 @@ call $class-implements/F#constructor global.set $class-implements/g global.get $class-implements/g - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 - call $class-implements/D#foo@virtual + local.get $6 + call $class-implements/D#foo@override i32.const 4 i32.eq i32.eqz @@ -2577,12 +2861,12 @@ call $class-implements/F#constructor global.set $class-implements/h global.get $class-implements/h - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 - local.get $0 - call $class-implements/I#foo@virtual + local.get $6 + call $class-implements/I#foo@override i32.const 4 i32.eq i32.eqz @@ -2595,90 +2879,450 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $class-implements/A#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $this + call $class-implements/A2#constructor + local.tee $0 + i32.store $0 offset=4 + local.get $0 + call $class-implements/A2#get:foo + i32.const 1 + i32.eq i32.eqz if - global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 432 + i32.const 85 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $class-implements/B#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this + local.get $0 + call $class-implements/I2#get:foo@override + i32.const 1 + i32.eq i32.eqz if - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + i32.const 432 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $class-implements/C#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this + local.get $0 + i32.const 2 + call $class-implements/I2#set:foo@override + local.get $0 + call $class-implements/A2#get:foo + i32.const 2 + i32.eq i32.eqz if - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 + i32.const 432 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $this - call $class-implements/B#constructor - local.tee $this + local.get $0 + call $class-implements/I2#get:foo@override + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/A3#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + call $class-implements/A3#get:foo + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $class-implements/I2#get:foo@override + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 6 + call $class-implements/I2#set:foo@override + local.get $1 + call $class-implements/A3#get:foo + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $class-implements/I2#get:foo@override + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/A4#constructor + local.tee $2 + i32.store $0 offset=12 + local.get $2 + call $class-implements/A4#get:foo + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $class-implements/I2#get:foo@override + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 8 + call $class-implements/I2#set:foo@override + local.get $2 + call $class-implements/A4#get:foo + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $class-implements/I2#get:foo@override + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/B2#constructor + local.tee $3 + i32.store $0 offset=16 + local.get $3 + call $class-implements/B2#get:foo@override + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $class-implements/I2#get:foo@override + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + call $class-implements/I2#set:foo@override + local.get $3 + call $class-implements/B2#get:foo@override + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 112 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $class-implements/I2#get:foo@override + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 113 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/B3#constructor + local.tee $4 + i32.store $0 offset=20 + local.get $4 + call $class-implements/B3#get:foo + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $class-implements/I2#get:foo@override + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 118 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 10 + call $class-implements/I2#set:foo@override + local.get $4 + call $class-implements/B3#get:foo + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $class-implements/I2#get:foo@override + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/B4#constructor + local.tee $5 + i32.store $0 offset=24 + local.get $5 + call $class-implements/B4#get:foo + i32.const 11 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 125 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $class-implements/I2#get:foo@override + i32.const 11 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 12 + call $class-implements/I2#set:foo@override + local.get $5 + call $class-implements/B4#get:foo + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $class-implements/I2#get:foo@override + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $class-implements/A#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/B#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/C#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $class-implements/B#constructor + local.tee $this i32.store $0 local.get $this local.set $1 @@ -2782,4 +3426,210 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $class-implements/A2#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 1 + call $class-implements/A2#set:foo + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/A3#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $class-implements/A2#constructor + local.tee $this + i32.store $0 + local.get $this + i32.const 5 + call $class-implements/A3#set:foo + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/A4#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $class-implements/A2#constructor + local.tee $this + i32.store $0 + local.get $this + i32.const 7 + call $class-implements/A4#set:foo + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/B2#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 3 + call $class-implements/B2#set:_foo + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/B3#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $class-implements/B2#constructor + local.tee $this + i32.store $0 + local.get $this + i32.const 9 + call $class-implements/B3#set:_foo2 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-implements/B4#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $class-implements/B2#constructor + local.tee $this + i32.store $0 + local.get $this + i32.const 11 + call $class-implements/B4#set:_foo2 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) ) diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 785cf3a16b..85e2a4e7cf 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -3,6 +3,7 @@ (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -24,7 +25,7 @@ (global $class-implements/f (mut i32) (i32.const 0)) (global $class-implements/g (mut i32) (i32.const 0)) (global $class-implements/h (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34364)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34420)) (memory $0 1) (data (i32.const 1036) "<") (data (i32.const 1048) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") @@ -38,8 +39,8 @@ (data (i32.const 1384) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 1436) "<") (data (i32.const 1448) "\01\00\00\00&\00\00\00c\00l\00a\00s\00s\00-\00i\00m\00p\00l\00e\00m\00e\00n\00t\00s\00.\00t\00s") - (data (i32.const 1504) "\0b\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 1532) " \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\07\00\00\00 \00\00\00\07") + (data (i32.const 1504) "\12\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1532) " \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\07\00\00\00 \00\00\00\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0b\00\00\00 \00\00\00\0b\00\00\00 \00\00\00\00\00\00\00 \00\00\00\0f\00\00\00 \00\00\00\0f") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (type $none_=>_none) @@ -660,10 +661,10 @@ if unreachable end - i32.const 34368 + i32.const 34432 i32.const 0 i32.store $0 - i32.const 35936 + i32.const 36000 i32.const 0 i32.store $0 loop $for-loop|0 @@ -674,7 +675,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 34368 + i32.const 34432 i32.add i32.const 0 i32.store $0 offset=4 @@ -692,7 +693,7 @@ i32.add i32.const 2 i32.shl - i32.const 34368 + i32.const 34432 i32.add i32.const 0 i32.store $0 offset=96 @@ -710,13 +711,13 @@ br $for-loop|0 end end - i32.const 34368 - i32.const 35940 + i32.const 34432 + i32.const 36004 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 34368 + i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) @@ -801,7 +802,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 34364 + i32.const 34420 i32.lt_u if local.get $0 @@ -901,7 +902,7 @@ unreachable end local.get $0 - i32.const 34364 + i32.const 34420 i32.lt_u if local.get $0 @@ -924,7 +925,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 34364 + i32.const 34420 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -986,18 +987,83 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) + local.get $1 + i32.const 256 + i32.lt_u + if (result i32) + local.get $1 + i32.const 4 + i32.shr_u + else + i32.const 31 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870910 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $2 + local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load $0 offset=4 - i32.const -2 + i32.const -1 + local.get $1 + i32.shl i32.and local.tee $1 if (result i32) local.get $0 local.get $1 i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add i32.const 2 i32.shl i32.add @@ -1005,19 +1071,23 @@ else local.get $0 i32.load $0 - i32.const -2 + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl i32.and local.tee $1 if (result i32) local.get $0 local.get $1 i32.ctz - local.tee $2 + local.tee $1 i32.const 2 i32.shl i32.add i32.load $0 offset=4 - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1028,9 +1098,9 @@ unreachable end local.get $0 - local.get $1 - i32.ctz local.get $2 + i32.ctz + local.get $1 i32.const 4 i32.shl i32.add @@ -1043,23 +1113,35 @@ end end ) - (func $~lib/rt/itcms/__new (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 1056 + i32.const 1120 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.ge_u if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $1 + local.set $2 loop $do-loop|0 - local.get $1 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $1 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1075,14 +1157,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $1 + local.get $2 i32.const 0 i32.gt_s br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1099,31 +1181,75 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 + i32.add local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 12 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.get $2 + i32.const 12 + i32.le_u + select + local.tee $5 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if memory.size $0 - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $4 i32.load $0 offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 i32.sub i32.ne i32.shl - i32.const 65563 + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.get $5 + local.get $5 + i32.const 536870910 + i32.lt_u + select + i32.add + i32.const 65535 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u local.tee $3 - local.get $1 + local.get $2 local.get $3 i32.gt_s select @@ -1139,17 +1265,18 @@ unreachable end end + local.get $4 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $4 + local.get $5 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1160,12 +1287,12 @@ unreachable end end - local.get $1 + local.get $5 + local.get $2 i32.load $0 i32.const -4 i32.and - i32.const 28 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1392 @@ -1174,92 +1301,108 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 i32.load $0 - local.tee $4 + local.set $3 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.const -4 i32.and - i32.const 28 + local.get $5 i32.sub - local.tee $3 + local.tee $6 i32.const 16 i32.ge_u if - local.get $1 - local.get $4 + local.get $2 + local.get $5 + local.get $3 i32.const 2 i32.and - i32.const 28 i32.or i32.store $0 - local.get $1 - i32.const 32 + local.get $2 + i32.const 4 i32.add - local.tee $4 - local.get $3 + local.get $5 + i32.add + local.tee $3 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 - local.get $2 local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const -2 i32.and i32.store $0 - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + local.get $2 i32.load $0 i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load $0 i32.const -3 i32.and i32.store $0 end + local.get $2 local.get $1 - local.get $0 i32.store $0 offset=12 - local.get $1 - i32.const 0 + local.get $2 + local.get $0 i32.store $0 offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $1 i32.load $0 offset=8 - local.set $2 + local.set $3 + local.get $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 - local.get $1 local.get $2 + local.get $3 i32.store $0 offset=8 + local.get $3 local.get $2 - local.get $1 - local.get $2 + local.get $3 i32.load $0 offset=4 i32.const 3 i32.and i32.or i32.store $0 offset=4 - local.get $0 local.get $1 + local.get $2 i32.store $0 offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.load $0 i32.const -4 i32.and @@ -1267,45 +1410,66 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.const 20 i32.add - local.tee $0 - i32.const 0 + local.tee $1 i32.const 0 - memory.fill $0 local.get $0 + memory.fill $0 + local.get $1 ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid - block $class-implements/F - block $class-implements/E - block $class-implements/J - block $class-implements/D - block $class-implements/B - block $class-implements/C - block $class-implements/I - block $class-implements/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $invalid + block $class-implements/B4 + block $class-implements/B3 + block $class-implements/B2 + block $class-implements/A4 + block $class-implements/A3 + block $class-implements/I2 + block $class-implements/A2 + block $class-implements/F + block $class-implements/E + block $class-implements/J + block $class-implements/D + block $class-implements/B + block $class-implements/C + block $class-implements/I + block $class-implements/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-implements/A $class-implements/I $class-implements/C $class-implements/B $class-implements/D $class-implements/J $class-implements/E $class-implements/F $class-implements/A2 $class-implements/I2 $class-implements/A3 $class-implements/A4 $class-implements/B2 $class-implements/B3 $class-implements/B4 $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + return end return end return end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end return end return @@ -1327,25 +1491,29 @@ unreachable ) (func $~start (type $none_=>_none) + call $start:class-implements + ) + (func $start:class-implements (type $none_=>_none) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 - i32.store $0 + i32.const 28 + memory.fill $0 memory.size $0 i32.const 16 i32.shl - i32.const 34364 + i32.const 34420 i32.sub i32.const 1 i32.shr_u @@ -1379,7 +1547,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1387,6 +1555,7 @@ i32.const 0 i32.store $0 local.get $0 + i32.const 0 i32.const 3 call $~lib/rt/itcms/__new local.tee $0 @@ -1405,7 +1574,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1413,6 +1582,7 @@ i32.const 0 i32.store $0 local.get $0 + i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 @@ -1423,7 +1593,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1433,6 +1603,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer + i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 @@ -1457,7 +1628,7 @@ i32.const 0 call $class-implements/D#constructor global.set $class-implements/d - block $__inlined_func$class-implements/D#foo@virtual (result i32) + block $__inlined_func$class-implements/D#foo@override (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/d local.tee $0 @@ -1469,7 +1640,7 @@ i32.load $0 i32.const 10 i32.eq - br_if $__inlined_func$class-implements/D#foo@virtual + br_if $__inlined_func$class-implements/D#foo@override drop i32.const 3 end @@ -1488,7 +1659,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1496,6 +1667,7 @@ i32.const 0 i32.store $0 local.get $0 + i32.const 0 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 @@ -1511,7 +1683,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $class-implements/e - block $__inlined_func$class-implements/D#foo@virtual9 (result i32) + block $__inlined_func$class-implements/D#foo@override10 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/e local.tee $0 @@ -1523,7 +1695,7 @@ i32.load $0 i32.const 10 i32.eq - br_if $__inlined_func$class-implements/D#foo@virtual9 + br_if $__inlined_func$class-implements/D#foo@override10 drop i32.const 3 end @@ -1544,7 +1716,7 @@ i32.store $0 call $class-implements/F#constructor global.set $class-implements/g - block $__inlined_func$class-implements/D#foo@virtual15 (result i32) + block $__inlined_func$class-implements/D#foo@override16 (result i32) global.get $~lib/memory/__stack_pointer global.get $class-implements/g local.tee $0 @@ -1556,7 +1728,7 @@ i32.load $0 i32.const 10 i32.eq - br_if $__inlined_func$class-implements/D#foo@virtual15 + br_if $__inlined_func$class-implements/D#foo@override16 drop i32.const 3 end @@ -1576,35 +1748,35 @@ global.get $class-implements/h local.tee $0 i32.store $0 - block $__inlined_func$class-implements/I#foo@virtual - block $default20 + block $__inlined_func$class-implements/I#foo@override + block $default21 block $case3 block $case2 block $case1 - block $case021 + block $case022 local.get $0 i32.const 8 i32.sub i32.load $0 i32.const 3 i32.sub - br_table $case021 $default20 $case1 $default20 $case2 $default20 $case2 $case3 $default20 + br_table $case1 $default21 $case2 $default21 $case3 $default21 $case3 $case022 $default21 end - i32.const 1 + i32.const 4 local.set $0 - br $__inlined_func$class-implements/I#foo@virtual + br $__inlined_func$class-implements/I#foo@override end - i32.const 2 + i32.const 1 local.set $0 - br $__inlined_func$class-implements/I#foo@virtual + br $__inlined_func$class-implements/I#foo@override end - i32.const 3 + i32.const 2 local.set $0 - br $__inlined_func$class-implements/I#foo@virtual + br $__inlined_func$class-implements/I#foo@override end - i32.const 4 + i32.const 3 local.set $0 - br $__inlined_func$class-implements/I#foo@virtual + br $__inlined_func$class-implements/I#foo@override end unreachable end @@ -1620,13 +1792,1267 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34384 - i32.const 34432 + i32.const 0 + call $class-implements/A2#constructor + local.tee $0 + i32.store $0 offset=4 + local.get $0 + i32.load $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override (result i32) + block $default + block $case5 + block $case4 + block $case30 + block $case21 + block $case12 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4 $default $case0 $case12 $case5 $case21 $case30 $default + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override + end + unreachable + end + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override + block $default3 + block $case54 + block $case45 + block $case36 + block $case27 + block $case18 + block $case09 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case45 $default3 $case09 $case18 $case54 $case27 $case36 $default3 + end + local.get $0 + i32.const 2 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override + end + local.get $0 + i32.const 2 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override + end + local.get $0 + i32.const 2 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override + end + local.get $0 + i32.const 2 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override + end + local.get $0 + i32.const 2 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override + end + local.get $0 + i32.const 2 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override + end + unreachable + end + local.get $0 + i32.load $0 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override10 (result i32) + block $default11 + block $case512 + block $case413 + block $case314 + block $case215 + block $case116 + block $case017 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case413 $default11 $case017 $case116 $case512 $case215 $case314 $default11 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override10 + end + unreachable + end + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 4 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $class-implements/A2#constructor + local.tee $1 + i32.store $0 + local.get $1 + i32.const 5 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + i32.load $0 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override18 (result i32) + block $default19 + block $case520 + block $case421 + block $case322 + block $case223 + block $case124 + block $case025 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case421 $default19 $case025 $case124 $case520 $case223 $case322 $default19 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override18 + end + unreachable + end + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 94 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override26 + block $default27 + block $case528 + block $case429 + block $case330 + block $case231 + block $case132 + block $case033 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case429 $default27 $case033 $case132 $case528 $case231 $case330 $default27 + end + local.get $1 + i32.const 6 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + local.get $1 + i32.const 6 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + local.get $1 + i32.const 6 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + local.get $1 + i32.const 6 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + local.get $1 + i32.const 6 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + local.get $1 + i32.const 6 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override26 + end + unreachable + end + local.get $1 + i32.load $0 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override34 (result i32) + block $default35 + block $case536 + block $case437 + block $case338 + block $case239 + block $case140 + block $case041 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case437 $default35 $case041 $case140 $case536 $case239 $case338 $default35 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override34 + end + unreachable + end + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 4 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $class-implements/A2#constructor + local.tee $1 + i32.store $0 + local.get $1 + i32.const 7 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store $0 offset=12 + local.get $1 + i32.load $0 + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override42 (result i32) + block $default43 + block $case544 + block $case445 + block $case346 + block $case247 + block $case148 + block $case049 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case445 $default43 $case049 $case148 $case544 $case247 $case346 $default43 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override42 + end + unreachable + end + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override50 + block $default51 + block $case552 + block $case453 + block $case354 + block $case255 + block $case156 + block $case057 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case453 $default51 $case057 $case156 $case552 $case255 $case354 $default51 + end + local.get $1 + i32.const 8 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + local.get $1 + i32.const 8 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + local.get $1 + i32.const 8 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + local.get $1 + i32.const 8 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + local.get $1 + i32.const 8 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + local.get $1 + i32.const 8 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override50 + end + unreachable + end + local.get $1 + i32.load $0 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override58 (result i32) + block $default59 + block $case560 + block $case461 + block $case362 + block $case263 + block $case164 + block $case065 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case461 $default59 $case065 $case164 $case560 $case263 $case362 $default59 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override58 + end + unreachable + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $class-implements/B2#constructor + local.tee $0 + i32.store $0 offset=16 + block $__inlined_func$class-implements/B2#get:foo@override (result i32) + block $default0 + block $case11 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $1 + i32.const 16 + i32.ne + if + local.get $1 + i32.const 17 + i32.eq + br_if $case11 + br $default0 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/B2#get:foo@override + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/B2#get:foo@override + end + local.get $0 + i32.load $0 + end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override66 (result i32) + block $default67 + block $case568 + block $case469 + block $case370 + block $case271 + block $case172 + block $case073 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case469 $default67 $case073 $case172 $case568 $case271 $case370 $default67 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override66 + end + unreachable + end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override74 + block $default75 + block $case576 + block $case477 + block $case378 + block $case279 + block $case180 + block $case081 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case477 $default75 $case081 $case180 $case576 $case279 $case378 $default75 + end + local.get $0 + i32.const 4 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + local.get $0 + i32.const 4 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + local.get $0 + i32.const 4 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + local.get $0 + i32.const 4 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + local.get $0 + i32.const 4 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + local.get $0 + i32.const 4 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override74 + end + unreachable + end + block $__inlined_func$class-implements/B2#get:foo@override6 (result i32) + block $default7 + block $case1882 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $1 + i32.const 16 + i32.ne + if + local.get $1 + i32.const 17 + i32.eq + br_if $case1882 + br $default7 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/B2#get:foo@override6 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/B2#get:foo@override6 + end + local.get $0 + i32.load $0 + end + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 112 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override83 (result i32) + block $default84 + block $case585 + block $case486 + block $case387 + block $case288 + block $case189 + block $case090 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case486 $default84 $case090 $case189 $case585 $case288 $case387 $default84 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + local.get $0 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + local.get $0 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override83 + end + unreachable + end + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 113 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 8 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $class-implements/B2#constructor + local.tee $1 + i32.store $0 + local.get $1 + i32.const 9 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store $0 offset=20 + local.get $1 + i32.load $0 offset=4 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override91 (result i32) + block $default92 + block $case593 + block $case494 + block $case395 + block $case296 + block $case197 + block $case098 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case494 $default92 $case098 $case197 $case593 $case296 $case395 $default92 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override91 + end + unreachable + end + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 118 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override99 + block $default100 + block $case5101 + block $case4102 + block $case3103 + block $case2104 + block $case1105 + block $case0106 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4102 $default100 $case0106 $case1105 $case5101 $case2104 $case3103 $default100 + end + local.get $1 + i32.const 10 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + local.get $1 + i32.const 10 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + local.get $1 + i32.const 10 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + local.get $1 + i32.const 10 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + local.get $1 + i32.const 10 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + local.get $1 + i32.const 10 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override99 + end + unreachable + end + local.get $1 + i32.load $0 offset=4 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override107 (result i32) + block $default108 + block $case5109 + block $case4110 + block $case3111 + block $case2112 + block $case1113 + block $case0114 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4110 $default108 $case0114 $case1113 $case5109 $case2112 $case3111 $default108 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override107 + end + unreachable + end + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store $0 + local.get $1 + i32.const 8 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $class-implements/B2#constructor + local.tee $1 + i32.store $0 + local.get $1 + i32.const 11 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store $0 offset=24 + local.get $1 + i32.load $0 offset=4 + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 125 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override115 (result i32) + block $default116 + block $case5117 + block $case4118 + block $case3119 + block $case2120 + block $case1121 + block $case0122 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4118 $default116 $case0122 $case1121 $case5117 $case2120 $case3119 $default116 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override115 + end + unreachable + end + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#set:foo@override123 + block $default124 + block $case5125 + block $case4126 + block $case3127 + block $case2128 + block $case1129 + block $case0130 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4126 $default124 $case0130 $case1129 $case5125 $case2128 $case3127 $default124 + end + local.get $1 + i32.const 12 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + local.get $1 + i32.const 12 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + local.get $1 + i32.const 12 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + local.get $1 + i32.const 12 + i32.store $0 offset=4 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + local.get $1 + i32.const 12 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + local.get $1 + i32.const 12 + i32.store $0 + br $__inlined_func$class-implements/I2#set:foo@override123 + end + unreachable + end + local.get $1 + i32.load $0 offset=4 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$class-implements/I2#get:foo@override131 (result i32) + block $default132 + block $case5133 + block $case4134 + block $case3135 + block $case2136 + block $case1137 + block $case0138 + local.get $1 + i32.const 8 + i32.sub + i32.load $0 + i32.const 11 + i32.sub + br_table $case4134 $default132 $case0138 $case1137 $case5133 $case2136 $case3135 $default132 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + local.get $1 + i32.load $0 offset=4 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + local.get $1 + i32.load $0 + br $__inlined_func$class-implements/I2#get:foo@override131 + end + unreachable + end + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1638,11 +3064,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s if - i32.const 34384 - i32.const 34432 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1655,6 +3081,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer + i32.const 0 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 @@ -1673,11 +3100,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1596 + i32.const 1652 i32.lt_s if - i32.const 34384 - i32.const 34432 + i32.const 34448 + i32.const 34496 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1688,6 +3115,7 @@ i32.const 0 i32.store $0 local.get $0 + i32.const 0 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 @@ -1703,6 +3131,82 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $class-implements/A2#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + if + i32.const 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + local.get $0 + i32.const 1 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/B2#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1652 + i32.lt_s + if + i32.const 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + local.get $0 + i32.const 3 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) @@ -1748,7 +3252,7 @@ i32.load $0 offset=8 i32.eqz local.get $1 - i32.const 34364 + i32.const 34420 i32.lt_u i32.and i32.eqz diff --git a/tests/compiler/class-implements.ts b/tests/compiler/class-implements.ts index cc6bfca763..4511b840fb 100644 --- a/tests/compiler/class-implements.ts +++ b/tests/compiler/class-implements.ts @@ -43,8 +43,88 @@ class F extends D implements I { let f = new F(); assert(f.foo() == 4); -let g:D = new F(); +let g: D = new F(); assert(g.foo() == 4); -let h:I = new F(); +let h: I = new F(); assert(h.foo() == 4); + +// can implement fields with fields or properties +interface I2 { + foo: i32; +} +class A2 implements I2 { + foo: i32 = 1; // implement +} +class A3 extends A2 { + foo: i32 = 5; // redeclare +} +class A4 extends A2 implements I2 { + foo: i32 = 7; // both +} +class B2 implements I2 { + // implement + private _foo: i32 = 3; + get foo(): i32 { return this._foo; } + set foo(foo: i32) { this._foo = foo; } +} +class B3 extends B2 { + // override + private _foo2: i32 = 9; + get foo(): i32 { return this._foo2; } + set foo(foo: i32) { this._foo2 = foo; } +} +class B4 extends B2 implements I2 { + // both + private _foo2: i32 = 11; + get foo(): i32 { return this._foo2; } + set foo(foo: i32) { this._foo2 = foo; } +} +{ + let a2 = new A2(); + assert(a2.foo == 1); + assert((a2).foo == 1); + (a2).foo = 2; + assert(a2.foo == 2); + assert((a2).foo == 2); +} +{ + let a3 = new A3(); + assert(a3.foo == 5); + assert((a3).foo == 5); + (a3).foo = 6; + assert(a3.foo == 6); + assert((a3).foo == 6); +} +{ + let a4 = new A4(); + assert(a4.foo == 7); + assert((a4).foo == 7); + (a4).foo = 8; + assert(a4.foo == 8); + assert((a4).foo == 8); +} +{ + let b2 = new B2(); + assert(b2.foo == 3); + assert((b2).foo == 3); + (b2).foo = 4; + assert(b2.foo == 4); + assert((b2).foo == 4); +} +{ + let b3 = new B3(); + assert(b3.foo == 9); + assert((b3).foo == 9); + (b3).foo = 10; + assert(b3.foo == 10); + assert((b3).foo == 10); +} +{ + let b4 = new B4(); + assert(b4.foo == 11); + assert((b4).foo == 11); + (b4).foo = 12; + assert(b4.foo == 12); + assert((b4).foo == 12); +} diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 51f8b53963..b133fbf7c4 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -2387,7 +2387,7 @@ (func $class-overloading-cast/B#foo (type $i32_f64_=>_i32) (param $this i32) (param $a f64) (result i32) i32.const 464 ) - (func $class-overloading-cast/A#foo@virtual (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (func $class-overloading-cast/A#foo@override (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) block $default block $case1 @@ -2421,7 +2421,7 @@ local.get $1 call $class-overloading-cast/A#foo ) - (func $class-overloading-cast/A#foo@virtual (type $i32_f64_=>_i32) (param $0 i32) (param $1 f64) (result i32) + (func $class-overloading-cast/A#foo@override (type $i32_f64_=>_i32) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) block $default block $case0 @@ -2445,7 +2445,7 @@ local.get $1 call $class-overloading-cast/A#foo ) - (func $class-overloading-cast/A<~lib/string/String>#foo@virtual (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (func $class-overloading-cast/A<~lib/string/String>#foo@override (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.const 8 @@ -2624,7 +2624,7 @@ i32.store $0 offset=8 local.get $0 i32.const 1 - call $class-overloading-cast/A#foo@virtual + call $class-overloading-cast/A#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2682,7 +2682,7 @@ i32.store $0 offset=8 local.get $0 f64.const 1.1 - call $class-overloading-cast/A#foo@virtual + call $class-overloading-cast/A#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2719,7 +2719,7 @@ local.get $0 i32.store $0 offset=12 local.get $0 - call $class-overloading-cast/A<~lib/string/String>#foo@virtual + call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2753,7 +2753,7 @@ local.get $0 i32.store $0 offset=12 local.get $0 - call $class-overloading-cast/A<~lib/string/String>#foo@virtual + call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index d96011df00..630fe23f20 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1168,17 +1168,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1187,19 +1187,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1607,7 +1607,7 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer - block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) + block $__inlined_func$class-overloading-cast/A#foo@override (result i32) global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v local.tee $0 @@ -1629,10 +1629,10 @@ br $default end i32.const 1488 - br $__inlined_func$class-overloading-cast/A#foo@virtual + br $__inlined_func$class-overloading-cast/A#foo@override end i32.const 1488 - br $__inlined_func$class-overloading-cast/A#foo@virtual + br $__inlined_func$class-overloading-cast/A#foo@override end i32.const 1456 end @@ -1675,7 +1675,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) + block $__inlined_func$class-overloading-cast/A#foo@override (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $class-overloading-cast/v3 @@ -1688,7 +1688,7 @@ i32.load $0 i32.const 6 i32.eq - br_if $__inlined_func$class-overloading-cast/A#foo@virtual + br_if $__inlined_func$class-overloading-cast/A#foo@override drop i32.const 1456 end diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 1a8e4876ec..5691465f1d 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -2463,12 +2463,12 @@ ) (func $class-overloading/A1#bar (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - call $class-overloading/A1#baz@virtual + call $class-overloading/A1#baz@override ) (func $class-overloading/B1#baz (type $i32_=>_i32) (param $this i32) (result i32) i32.const 3 ) - (func $class-overloading/A#a@virtual (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $class-overloading/A#a@override (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) block $default block $case2 @@ -2520,7 +2520,7 @@ local.get $1 call $class-overloading/A#a ) - (func $class-overloading/A#b@virtual (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $class-overloading/A#b@override (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) block $default block $case2 @@ -2572,7 +2572,7 @@ local.get $1 call $class-overloading/A#b ) - (func $class-overloading/A#get:c@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $class-overloading/A#get:c@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case2 @@ -2620,7 +2620,7 @@ local.get $0 call $class-overloading/A#get:c ) - (func $class-overloading/A#set:c@virtual (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $class-overloading/A#set:c@override (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) block $default block $case2 @@ -2672,7 +2672,7 @@ local.get $1 call $class-overloading/A#set:c ) - (func $class-overloading/IA#foo@virtual (type $i32_=>_none) (param $0 i32) + (func $class-overloading/IA#foo@override (type $i32_=>_none) (param $0 i32) (local $1 i32) block $default block $case1 @@ -2702,7 +2702,7 @@ end unreachable ) - (func $class-overloading/A2#foo@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $class-overloading/A2#foo@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case0 @@ -2724,7 +2724,7 @@ local.get $0 call $class-overloading/A2#foo ) - (func $class-overloading/A1#baz@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $class-overloading/A1#baz@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case0 @@ -2973,7 +2973,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3005,7 +3005,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#b@virtual + call $class-overloading/A#b@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3036,7 +3036,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/A#get:c@virtual + call $class-overloading/A#get:c@override drop global.get $class-overloading/which local.set $0 @@ -3069,7 +3069,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#set:c@virtual + call $class-overloading/A#set:c@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3233,7 +3233,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3265,7 +3265,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#b@virtual + call $class-overloading/A#b@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3296,7 +3296,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/A#get:c@virtual + call $class-overloading/A#get:c@override drop global.get $class-overloading/which local.set $0 @@ -3327,7 +3327,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#set:c@virtual + call $class-overloading/A#set:c@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3362,7 +3362,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3394,7 +3394,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#b@virtual + call $class-overloading/A#b@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3425,7 +3425,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/A#get:c@virtual + call $class-overloading/A#get:c@override drop global.get $class-overloading/which local.set $0 @@ -3456,7 +3456,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#set:c@virtual + call $class-overloading/A#set:c@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3491,7 +3491,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3523,7 +3523,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#b@virtual + call $class-overloading/A#b@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3554,7 +3554,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/A#get:c@virtual + call $class-overloading/A#get:c@override drop global.get $class-overloading/which local.set $0 @@ -3587,7 +3587,7 @@ i32.store $0 local.get $0 i32.const 1 - call $class-overloading/A#set:c@virtual + call $class-overloading/A#set:c@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3621,7 +3621,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/IA#foo@virtual + call $class-overloading/IA#foo@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3655,7 +3655,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/IA#foo@virtual + call $class-overloading/IA#foo@override global.get $class-overloading/which local.set $0 global.get $~lib/memory/__stack_pointer @@ -3687,7 +3687,7 @@ local.get $0 i32.store $0 local.get $0 - call $class-overloading/A2#foo@virtual + call $class-overloading/A2#foo@override i32.const 3 i32.eq i32.eqz diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index fd3d64ec0e..8a03fe5767 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1190,17 +1190,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1209,19 +1209,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1404,7 +1404,7 @@ local.get $3 i32.eqz ) - (func $class-overloading/A#a@virtual (type $i32_=>_none) (param $0 i32) + (func $class-overloading/A#a@override (type $i32_=>_none) (param $0 i32) block $default block $case2 block $case1 @@ -1611,7 +1611,7 @@ local.tee $0 i32.store $0 local.get $0 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $~lib/memory/__stack_pointer global.get $class-overloading/which local.tee $0 @@ -1637,7 +1637,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual + block $__inlined_func$class-overloading/A#b@override block $default block $case2 block $case1 @@ -1652,15 +1652,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual + br $__inlined_func$class-overloading/A#b@override end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual + br $__inlined_func$class-overloading/A#b@override end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual + br $__inlined_func$class-overloading/A#b@override end i32.const 1488 global.set $class-overloading/which @@ -1691,7 +1691,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#get:c@virtual + block $__inlined_func$class-overloading/A#get:c@override block $default6 block $case27 block $case18 @@ -1706,15 +1706,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual + br $__inlined_func$class-overloading/A#get:c@override end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual + br $__inlined_func$class-overloading/A#get:c@override end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual + br $__inlined_func$class-overloading/A#get:c@override end i32.const 1488 global.set $class-overloading/which @@ -1745,7 +1745,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual10 + block $__inlined_func$class-overloading/A#b@override10 block $default11 block $case212 block $case113 @@ -1760,15 +1760,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@override10 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@override10 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 + br $__inlined_func$class-overloading/A#b@override10 end i32.const 1488 global.set $class-overloading/which @@ -1932,7 +1932,7 @@ local.tee $0 i32.store $0 local.get $0 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $~lib/memory/__stack_pointer global.get $class-overloading/which local.tee $0 @@ -1958,7 +1958,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual22 + block $__inlined_func$class-overloading/A#b@override22 block $default23 block $case224 block $case125 @@ -1973,15 +1973,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@override22 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@override22 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@override22 end i32.const 1488 global.set $class-overloading/which @@ -2012,7 +2012,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#get:c@virtual31 + block $__inlined_func$class-overloading/A#get:c@override31 block $default32 block $case233 block $case134 @@ -2027,15 +2027,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@override31 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@override31 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@override31 end i32.const 1488 global.set $class-overloading/which @@ -2064,7 +2064,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual40 + block $__inlined_func$class-overloading/A#b@override40 block $default41 block $case242 block $case143 @@ -2079,15 +2079,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@override40 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@override40 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@override40 end i32.const 1488 global.set $class-overloading/which @@ -2122,7 +2122,7 @@ local.tee $0 i32.store $0 local.get $0 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $~lib/memory/__stack_pointer global.get $class-overloading/which local.tee $0 @@ -2148,7 +2148,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual49 + block $__inlined_func$class-overloading/A#b@override49 block $default50 block $case251 block $case152 @@ -2163,15 +2163,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@override49 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@override49 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@override49 end i32.const 1488 global.set $class-overloading/which @@ -2202,7 +2202,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#get:c@virtual58 + block $__inlined_func$class-overloading/A#get:c@override58 block $default59 block $case260 block $case161 @@ -2217,15 +2217,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@override58 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@override58 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@override58 end i32.const 1488 global.set $class-overloading/which @@ -2254,7 +2254,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual67 + block $__inlined_func$class-overloading/A#b@override67 block $default68 block $case269 block $case170 @@ -2269,15 +2269,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@override67 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@override67 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@override67 end i32.const 1488 global.set $class-overloading/which @@ -2337,7 +2337,7 @@ local.tee $0 i32.store $0 local.get $0 - call $class-overloading/A#a@virtual + call $class-overloading/A#a@override global.get $~lib/memory/__stack_pointer global.get $class-overloading/which local.tee $0 @@ -2363,7 +2363,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual77 + block $__inlined_func$class-overloading/A#b@override77 block $default78 block $case279 block $case180 @@ -2378,15 +2378,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@override77 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@override77 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@override77 end i32.const 1488 global.set $class-overloading/which @@ -2417,7 +2417,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#get:c@virtual86 + block $__inlined_func$class-overloading/A#get:c@override86 block $default87 block $case288 block $case189 @@ -2432,15 +2432,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@override86 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@override86 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@override86 end i32.const 1488 global.set $class-overloading/which @@ -2471,7 +2471,7 @@ global.get $class-overloading/a local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A#b@virtual95 + block $__inlined_func$class-overloading/A#b@override95 block $default96 block $case297 block $case198 @@ -2486,15 +2486,15 @@ end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@override95 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@override95 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@override95 end i32.const 1488 global.set $class-overloading/which @@ -2548,7 +2548,7 @@ global.get $class-overloading/ia local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/IA#foo@virtual + block $__inlined_func$class-overloading/IA#foo@override block $default105 block $case1106 local.get $0 @@ -2567,11 +2567,11 @@ end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual + br $__inlined_func$class-overloading/IA#foo@override end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual + br $__inlined_func$class-overloading/IA#foo@override end unreachable end @@ -2624,7 +2624,7 @@ global.get $class-overloading/ic local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/IA#foo@virtual109 + block $__inlined_func$class-overloading/IA#foo@override109 block $default110 block $case1111 local.get $0 @@ -2643,11 +2643,11 @@ end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 + br $__inlined_func$class-overloading/IA#foo@override109 end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 + br $__inlined_func$class-overloading/IA#foo@override109 end unreachable end @@ -2726,7 +2726,7 @@ global.get $class-overloading/b2 local.tee $0 i32.store $0 - block $__inlined_func$class-overloading/A2#foo@virtual + block $__inlined_func$class-overloading/A2#foo@override local.get $0 i32.const 8 i32.sub @@ -2816,7 +2816,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-overloading/A2#foo@virtual + br $__inlined_func$class-overloading/A2#foo@override end i32.const 1744 i32.const 1552 diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index bbed4baa31..61a715ec95 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1050,7 +1050,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1058,7 +1058,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1073,16 +1073,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1090,7 +1090,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1098,7 +1098,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1125,22 +1125,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1149,19 +1149,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 1d2b0fffc4..a22c6ab317 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1046,7 +1046,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1054,7 +1054,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1069,16 +1069,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1086,7 +1086,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1094,7 +1094,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1121,22 +1121,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1145,19 +1145,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 3c20992a2c..25ad37c256 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1081,7 +1081,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1089,7 +1089,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1104,16 +1104,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1121,7 +1121,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1129,7 +1129,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1156,22 +1156,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1180,19 +1180,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 8e94b4c15d..af150586a1 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1128,17 +1128,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1147,19 +1147,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 1605e415d4..4cc3c962bd 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1050,7 +1050,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1058,7 +1058,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1073,16 +1073,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1090,7 +1090,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1098,7 +1098,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1125,22 +1125,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1149,19 +1149,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 5468f2e45f..17b907ee19 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1088,7 +1088,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1096,7 +1096,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1111,16 +1111,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1128,7 +1128,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1136,7 +1136,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1163,22 +1163,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1187,19 +1187,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index b78f1e848f..5088dfe38f 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -1246,7 +1246,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1254,7 +1254,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1269,16 +1269,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1286,7 +1286,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1294,7 +1294,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1321,22 +1321,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1345,19 +1345,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 0566638327..42328ea197 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1053,7 +1053,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1061,7 +1061,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1076,16 +1076,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1093,7 +1093,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1101,7 +1101,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1128,22 +1128,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1152,19 +1152,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 7fba61ff0e..32bca61176 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1077,7 +1077,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1085,7 +1085,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1100,16 +1100,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1117,7 +1117,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1125,7 +1125,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1152,22 +1152,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1176,19 +1176,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/instanceof-class.release.wat b/tests/compiler/instanceof-class.release.wat index f93bd10e79..d3069d5d78 100644 --- a/tests/compiler/instanceof-class.release.wat +++ b/tests/compiler/instanceof-class.release.wat @@ -1144,17 +1144,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1163,19 +1163,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index b0eff835df..bda273b77e 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1185,7 +1185,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1193,7 +1193,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1208,16 +1208,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1225,7 +1225,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1233,7 +1233,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1260,22 +1260,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1284,19 +1284,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 43cbb091a3..3af3da17d7 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1059,7 +1059,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1067,7 +1067,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1082,16 +1082,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1099,7 +1099,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1107,7 +1107,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1134,22 +1134,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1158,19 +1158,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 63021ba6d1..d99526b584 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1139,17 +1139,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1158,19 +1158,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 54073accf3..d439260b99 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1049,7 +1049,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1057,7 +1057,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1072,16 +1072,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1089,7 +1089,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1097,7 +1097,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1124,22 +1124,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1148,19 +1148,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 292d6f57e6..2b2f70f4c4 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1050,7 +1050,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1058,7 +1058,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1073,16 +1073,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1090,7 +1090,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1098,7 +1098,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1125,22 +1125,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1149,19 +1149,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 1668a79b08..6ed4c818bd 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1134,17 +1134,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1153,19 +1153,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index db2730aed8..fa29e9d18f 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1170,17 +1170,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1189,19 +1189,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 1ba5340d3d..996b995586 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1156,17 +1156,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1175,19 +1175,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index c79ebfcd09..30efdb10d3 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1083,7 +1083,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1091,7 +1091,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1106,16 +1106,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1123,7 +1123,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1131,7 +1131,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1158,22 +1158,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1182,19 +1182,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index 7767125b16..2a1bc73aef 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1081,7 +1081,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1089,7 +1089,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1104,16 +1104,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1121,7 +1121,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1129,7 +1129,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1156,22 +1156,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1180,19 +1180,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index fa63c505ba..6ebd8f552d 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1954,10 +1954,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store $0 - local.get $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1966,26 +1966,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.const 1056 i64.load $0 align=1 i64.store $0 align=1 + local.get $0 local.get $1 - local.get $3 i32.store $0 i32.const 16 i32.const 3 call $~lib/rt/itcms/__new local.tee $2 - local.get $3 + local.get $1 i32.store $0 - local.get $3 + local.get $1 if local.get $2 i32.eqz @@ -1998,7 +1998,7 @@ unreachable end global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.const 20 i32.sub local.tee $4 @@ -2013,7 +2013,7 @@ i32.load $0 offset=4 i32.const 3 i32.and - local.tee $1 + local.tee $0 global.get $~lib/rt/itcms/white i32.eqz i32.eq @@ -2024,7 +2024,7 @@ global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $1 + local.get $0 i32.const 3 i32.eq i32.and @@ -2036,7 +2036,7 @@ end end local.get $2 - local.get $3 + local.get $1 i32.store $0 offset=4 local.get $2 i32.const 8 @@ -2048,7 +2048,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 local.get $2 i32.store $0 local.get $2 diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 2228aadde7..1d1b216f16 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1140,7 +1140,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1202,12 +1202,12 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl local.get $3 i32.add - local.tee $4 + local.tee $6 i32.const 1073741804 i32.ge_u if @@ -1224,12 +1224,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $1 loop $do-loop|0 - local.get $2 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1245,20 +1245,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $1 i32.const 0 i32.gt_s br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1270,10 +1270,10 @@ end global.get $~lib/rt/tlsf/ROOT local.set $7 - local.get $4 + local.get $6 i32.const 16 i32.add - local.tee $2 + local.tee $1 i32.const 1073741820 i32.gt_u if @@ -1286,28 +1286,28 @@ end local.get $7 i32.const 12 - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $2 + local.get $1 i32.const 12 i32.le_u select local.tee $8 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size $0 - local.tee $2 + local.tee $1 i32.const 4 local.get $7 i32.load $0 offset=1568 - local.get $2 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1336,16 +1336,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $6 - local.get $2 - local.get $6 + local.tee $4 + local.get $1 + local.get $4 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $6 + local.get $4 memory.grow $0 i32.const 0 i32.lt_s @@ -1354,7 +1354,7 @@ end end local.get $7 - local.get $2 + local.get $1 i32.const 16 i32.shl memory.size $0 @@ -1364,7 +1364,7 @@ local.get $7 local.get $8 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1376,7 +1376,7 @@ end end local.get $8 - local.get $2 + local.get $1 i32.load $0 i32.const -4 i32.and @@ -1390,11 +1390,11 @@ unreachable end local.get $7 - local.get $2 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 + local.get $1 i32.load $0 - local.set $9 + local.set $4 local.get $8 i32.const 4 i32.add @@ -1408,89 +1408,89 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $4 i32.const -4 i32.and local.get $8 i32.sub - local.tee $6 + local.tee $9 i32.const 16 i32.ge_u if - local.get $2 + local.get $1 local.get $8 - local.get $9 + local.get $4 i32.const 2 i32.and i32.or i32.store $0 - local.get $2 + local.get $1 i32.const 4 i32.add local.get $8 i32.add - local.tee $8 - local.get $6 + local.tee $4 + local.get $9 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $7 - local.get $8 + local.get $4 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $9 + local.get $1 + local.get $4 i32.const -2 i32.and i32.store $0 - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load $0 i32.const -4 i32.and i32.add - local.tee $6 - local.get $6 + local.tee $4 + local.get $4 i32.load $0 i32.const -3 i32.and i32.store $0 end - local.get $2 + local.get $1 i32.const 1 i32.store $0 offset=12 - local.get $2 - local.get $4 + local.get $1 + local.get $6 i32.store $0 offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $6 + local.tee $4 i32.load $0 offset=8 local.set $7 - local.get $2 - local.get $6 + local.get $1 + local.get $4 global.get $~lib/rt/itcms/white i32.or i32.store $0 offset=4 - local.get $2 + local.get $1 local.get $7 i32.store $0 offset=8 local.get $7 - local.get $2 + local.get $1 local.get $7 i32.load $0 offset=4 i32.const 3 i32.and i32.or i32.store $0 offset=4 - local.get $6 - local.get $2 + local.get $4 + local.get $1 i32.store $0 offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load $0 i32.const -4 i32.and @@ -1498,17 +1498,17 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $2 + local.tee $1 i32.const 0 - local.get $4 + local.get $6 memory.fill $0 local.get $5 - local.get $2 + local.get $1 i32.store $0 - local.get $2 + local.get $1 local.get $3 i32.add local.set $4 @@ -1526,10 +1526,10 @@ i32.div_u local.set $0 local.get $4 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.add @@ -1561,10 +1561,10 @@ i32.ge_u if local.get $4 - local.get $1 + local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.add @@ -1587,7 +1587,7 @@ i32.ge_u if local.get $4 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 1 @@ -1602,7 +1602,7 @@ i32.store $0 else local.get $4 - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 @@ -1615,7 +1615,7 @@ end local.get $3 if - local.get $2 + local.get $1 i32.const 45 i32.store16 $0 end @@ -1624,7 +1624,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $1 ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index a13c8ca5af..d280829b97 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1055,7 +1055,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1063,7 +1063,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1078,16 +1078,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1095,7 +1095,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1103,7 +1103,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1130,22 +1130,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1154,19 +1154,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index abb8c21cd7..80c89c39c9 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1068,7 +1068,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1076,7 +1076,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1091,16 +1091,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1108,7 +1108,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1116,7 +1116,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1143,22 +1143,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1167,19 +1167,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/rt/instanceof.release.wat b/tests/compiler/rt/instanceof.release.wat index 4e7a0ee978..4cf45b0b2a 100644 --- a/tests/compiler/rt/instanceof.release.wat +++ b/tests/compiler/rt/instanceof.release.wat @@ -1173,17 +1173,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1192,19 +1192,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index abe8fc69a5..13a970249c 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -12849,20 +12849,20 @@ i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store $0 offset=4 local.get $1 - local.get $2 + local.get $6 i32.store $0 - local.get $2 + local.get $6 if local.get $1 - local.get $2 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $1 - local.get $2 + local.get $6 i32.store $0 offset=4 local.get $1 i32.const 1 @@ -12912,27 +12912,27 @@ i32.const 1 local.get $0 i32.load $0 offset=12 - local.tee $2 - local.get $2 + local.tee $6 + local.get $6 i32.const 1 i32.gt_s select - local.tee $6 + local.tee $7 i32.const 3 - local.get $2 - local.get $2 + local.get $6 + local.get $6 i32.const 3 i32.gt_s select - local.tee $2 + local.tee $6 i32.lt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const 1 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -12962,23 +12962,23 @@ local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $2 + local.tee $6 i32.const 0 - local.get $2 + local.get $6 i32.const 0 i32.le_s select - local.set $6 - local.get $2 + local.set $7 local.get $6 + local.get $7 i32.gt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const 0 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -13008,25 +13008,25 @@ local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $2 + local.tee $6 i32.const 0 - local.get $2 + local.get $6 i32.const 0 i32.le_s select - local.tee $6 - local.get $2 + local.tee $7 + local.get $6 i32.const 3 i32.sub - local.tee $2 + local.tee $6 i32.lt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const 1 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -13056,19 +13056,19 @@ local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $2 + local.tee $6 i32.const 2 i32.sub - local.tee $6 - local.get $2 + local.tee $7 + local.get $6 i32.lt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const 2 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -13099,27 +13099,27 @@ i32.const 1 local.get $0 i32.load $0 offset=12 - local.tee $2 - local.get $2 + local.tee $6 + local.get $6 i32.const 1 i32.gt_s select - local.tee $6 - local.get $2 + local.tee $7 + local.get $6 i32.const 0 - local.get $2 + local.get $6 i32.const 0 i32.le_s select - local.tee $2 + local.tee $6 i32.lt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const 0 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -13149,23 +13149,23 @@ local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $2 + local.tee $6 i32.const 0 - local.get $2 + local.get $6 i32.const 0 i32.le_s select - local.set $6 - local.get $2 + local.set $7 local.get $6 + local.get $7 i32.gt_s if local.get $1 - local.get $6 + local.get $7 i32.add i32.const -1 - local.get $2 local.get $6 + local.get $7 i32.sub memory.fill $0 end @@ -14015,9 +14015,9 @@ i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 - local.get $2 + local.get $6 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14031,9 +14031,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 - local.get $2 + local.get $6 i32.load $0 offset=12 i32.const 3 i32.ne @@ -14062,19 +14062,19 @@ i32.const 3 i32.const 2736 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 - local.get $2 + local.get $6 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14134,19 +14134,19 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 local.get $1 - local.get $2 + local.get $6 local.get $0 call $~lib/array/Array#concat local.tee $1 i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 - local.get $2 + local.get $6 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14283,11 +14283,11 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $6 i32.store $0 offset=8 local.get $1 local.get $0 - local.get $2 + local.get $6 call $~lib/array/Array#concat local.tee $1 i32.store $0 offset=40 @@ -15031,11 +15031,11 @@ end local.get $0 i32.load $0 offset=4 - local.tee $2 + local.tee $6 i32.load $0 - local.set $6 - local.get $2 - local.get $2 + local.set $7 + local.get $6 + local.get $6 i32.const 4 i32.add local.get $1 @@ -15044,17 +15044,17 @@ local.tee $1 i32.const 2 i32.shl - local.tee $7 + local.tee $8 memory.copy $0 $0 - local.get $2 - local.get $7 + local.get $6 + local.get $8 i32.add i32.const 0 i32.store $0 local.get $0 local.get $1 i32.store $0 offset=12 - local.get $6 + local.get $7 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -15288,12 +15288,12 @@ i32.const 3 i32.const 4000 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15317,12 +15317,12 @@ i32.const 3 i32.const 4032 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15346,12 +15346,12 @@ i32.const 3 i32.const 4064 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15395,12 +15395,12 @@ i32.const 3 i32.const 4112 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15424,12 +15424,12 @@ i32.const 3 i32.const 4144 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15453,12 +15453,12 @@ i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store $0 offset=8 local.get $1 - local.get $2 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15512,15 +15512,13 @@ i32.store $0 local.get $0 i32.load $0 offset=4 - local.set $2 + local.set $1 local.get $0 i32.load $0 offset=12 local.tee $0 i32.const 1 i32.gt_u if - i32.const 0 - local.set $1 local.get $0 i32.const 1 i32.shr_u @@ -15530,12 +15528,12 @@ i32.sub local.set $0 loop $while-continue|0 - local.get $1 + local.get $2 local.get $6 i32.lt_u if - local.get $2 local.get $1 + local.get $2 i32.const 2 i32.shl i32.add @@ -15543,9 +15541,9 @@ i32.load $0 local.set $8 local.get $7 - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const 2 i32.shl @@ -15556,10 +15554,10 @@ local.get $7 local.get $8 i32.store $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -19583,25 +19581,25 @@ i32.const 3 i32.const 6800 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store $0 offset=132 global.get $~lib/memory/__stack_pointer i32.const 6848 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|0182 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add @@ -19610,23 +19608,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $0 local.get $1 + local.get $0 i32.const 6848 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0182 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i if @@ -19640,20 +19638,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6880 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex185 loop $for-loop|0188 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add @@ -19662,23 +19660,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $0 local.get $1 + local.get $0 i32.const 6880 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex185 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0188 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -19694,20 +19692,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6912 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex191 loop $for-loop|0194 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add @@ -19716,23 +19714,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $0 local.get $1 + local.get $0 i32.const 6912 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex191 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0194 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19748,20 +19746,20 @@ global.get $~lib/memory/__stack_pointer i32.const 6944 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex197 loop $for-loop|0200 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 - i32.load $0 offset=4 local.get $0 + i32.load $0 offset=4 + local.get $1 i32.const 2 i32.shl i32.add @@ -19770,23 +19768,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $0 local.get $1 + local.get $0 i32.const 6944 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex197 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0200 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20954,23 +20952,23 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store $0 - local.get $0 + local.get $1 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -21003,7 +21001,7 @@ i32.const 3 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -21020,10 +21018,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 local.get $2 i32.load $0 offset=12 local.tee $6 @@ -21037,9 +21035,9 @@ i32.load $0 offset=4 local.set $8 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|019 - local.get $1 + local.get $0 local.get $6 local.get $2 i32.load $0 offset=12 @@ -21050,7 +21048,7 @@ select i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $9 @@ -21063,7 +21061,7 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $10 - local.get $1 + local.get $0 local.get $2 i32.const 9232 i32.load $0 @@ -21082,10 +21080,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|019 end end @@ -21093,11 +21091,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $7 i32.store $0 offset=136 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -21114,10 +21112,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 local.get $2 i32.load $0 offset=12 local.tee $6 @@ -21131,9 +21129,9 @@ i32.load $0 offset=4 local.set $8 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|022 - local.get $1 + local.get $0 local.get $6 local.get $2 i32.load $0 offset=12 @@ -21144,7 +21142,7 @@ select i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $9 @@ -21159,16 +21157,16 @@ local.get $9 i32.add local.get $10 - local.get $1 + local.get $0 local.get $2 i32.const 9264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|022 end end @@ -21176,7 +21174,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $7 i32.store $0 offset=140 local.get $7 @@ -21533,7 +21531,7 @@ call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 9520 @@ -21541,14 +21539,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0343 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21557,9 +21555,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21569,16 +21567,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9520 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0343 end end @@ -21598,7 +21596,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 local.get $0 i32.const 9552 @@ -21606,14 +21604,14 @@ i32.const 4 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0350 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21622,9 +21620,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21634,16 +21632,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9552 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0350 end end @@ -21663,7 +21661,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 local.get $0 i32.const 9584 @@ -21671,14 +21669,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0357 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21687,9 +21685,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21699,16 +21697,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9584 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0357 end end @@ -21725,7 +21723,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 local.get $0 i32.const 9616 @@ -21733,14 +21731,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0364 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21749,9 +21747,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21761,16 +21759,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9616 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0364 end end @@ -21786,7 +21784,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 local.get $0 i32.const 9648 @@ -21794,14 +21792,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0371 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21810,9 +21808,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21822,16 +21820,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9648 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0371 end end @@ -21867,7 +21865,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 local.get $0 i32.const 9680 @@ -21875,14 +21873,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0380 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21891,9 +21889,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21903,16 +21901,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9680 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0380 end end @@ -21959,7 +21957,7 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 9712 @@ -21967,14 +21965,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load $0 offset=12 local.set $6 loop $for-loop|0387 - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.load $0 offset=12 local.tee $7 local.get $6 @@ -21983,9 +21981,9 @@ select i32.lt_s if - local.get $2 - i32.load $0 offset=4 local.get $1 + i32.load $0 offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -21995,16 +21993,16 @@ global.set $~argumentsLength local.get $0 local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 9712 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0387 end end @@ -22059,20 +22057,20 @@ i32.const 9744 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0395 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22080,22 +22078,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9744 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0395 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22117,20 +22115,20 @@ i32.const 9776 i32.store $0 offset=8 i32.const 4 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0401 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22138,22 +22136,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9776 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0401 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22175,20 +22173,20 @@ i32.const 9808 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0407 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22196,22 +22194,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9808 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0407 end end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -22230,20 +22228,20 @@ i32.const 9840 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0413 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22251,22 +22249,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9840 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0413 end end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -22284,20 +22282,20 @@ i32.const 9872 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0419 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22305,22 +22303,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9872 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0419 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22358,20 +22356,20 @@ i32.const 9904 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0427 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22379,22 +22377,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9904 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0427 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22443,20 +22441,20 @@ i32.const 9936 i32.store $0 offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.load $0 offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0433 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -22464,22 +22462,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $6 local.get $1 + local.get $6 + local.get $0 local.get $2 i32.const 9936 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0433 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23022,12 +23020,12 @@ i32.const 11 i32.const 10384 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store $0 offset=268 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23048,16 +23046,16 @@ unreachable end i32.const 10480 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 10480 i32.store $0 end - local.get $1 + local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $2 i32.load $0 offset=12 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23069,15 +23067,15 @@ i32.const 11 i32.const 10512 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store $0 offset=8 i32.const 0 - local.get $1 + local.get $2 i32.load $0 offset=12 local.tee $6 - local.get $2 + local.get $1 i32.load $0 offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual @@ -23095,14 +23093,14 @@ local.get $6 i32.lt_s if - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get local.tee $4 local.get $4 f64.ne if (result i32) - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.tee $4 @@ -23114,14 +23112,14 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 @@ -23132,10 +23130,10 @@ br_if $__inlined_func$std/array/isArraysEqual drop i32.const 0 - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get f64.ne @@ -23166,12 +23164,12 @@ i32.const 3 i32.const 10608 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store $0 offset=272 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23192,16 +23190,16 @@ unreachable end i32.const 10656 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 10656 i32.store $0 end - local.get $1 + local.get $0 i32.load $0 offset=4 - local.get $1 - i32.load $0 offset=12 local.get $0 + i32.load $0 offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23212,12 +23210,12 @@ i32.const 3 i32.const 10688 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=8 local.get $1 + i32.store $0 offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23235,12 +23233,12 @@ i32.const 7 i32.const 10736 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store $0 offset=276 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23261,16 +23259,16 @@ unreachable end i32.const 10784 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store $0 end - local.get $1 + local.get $0 i32.load $0 offset=4 - local.get $1 - i32.load $0 offset=12 local.get $0 + i32.load $0 offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23281,12 +23279,12 @@ i32.const 7 i32.const 10816 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=8 local.get $1 + i32.store $0 offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -23976,7 +23974,7 @@ i32.const 33 i32.const 11536 call $~lib/rt/__newArray - local.tee $0 + local.tee $6 i32.store $0 offset=336 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -23984,7 +23982,7 @@ i32.const 33 i32.const 11584 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store $0 offset=340 i32.const 1 global.set $~argumentsLength @@ -24029,14 +24027,14 @@ i32.const 0 i32.store $0 block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $0 + local.get $6 i32.load $0 offset=4 - local.get $0 + local.get $6 i32.load $0 offset=12 local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -24051,15 +24049,15 @@ i64.store $0 i32.const 1 local.set $1 - local.get $0 + local.get $6 i32.load $0 offset=12 - local.set $7 + local.set $0 loop $for-loop|08 + local.get $0 local.get $1 - local.get $7 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $6 local.get $1 i32.const 1 i32.sub @@ -24068,7 +24066,7 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store $0 - local.get $0 + local.get $6 local.get $1 call $~lib/array/Array#__get local.set $9 @@ -24134,11 +24132,11 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $0 - i32.load $0 offset=12 - local.tee $2 local.get $6 i32.load $0 offset=12 + local.tee $1 + local.get $7 + i32.load $0 offset=12 i32.ne if global.get $~lib/memory/__stack_pointer @@ -24148,8 +24146,8 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $0 local.get $6 + local.get $7 i32.eq if global.get $~lib/memory/__stack_pointer @@ -24160,27 +24158,27 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|04 + local.get $0 local.get $1 - local.get $2 i32.lt_s if + local.get $6 local.get $0 - local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store $0 - local.get $6 - local.get $1 + local.get $7 + local.get $0 call $~lib/array/Array#__get local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store $0 offset=4 - local.get $7 + local.get $2 local.get $8 call $~lib/string/String.__eq i32.eqz @@ -24192,10 +24190,10 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|04 end end @@ -24216,12 +24214,12 @@ end global.get $~lib/memory/__stack_pointer call $std/array/createRandomStringArray - local.tee $1 + local.tee $0 i32.store $0 offset=344 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24244,13 +24242,13 @@ unreachable end i32.const 11664 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11664 i32.store $0 end - local.get $1 local.get $0 + local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26647,42 +26645,42 @@ i32.load $0 offset=12 local.set $8 i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|083 - local.get $1 + local.get $0 local.get $8 i32.lt_s if local.get $7 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $2 + local.tee $1 if (result i32) - local.get $2 + local.get $1 i32.load $0 offset=12 else i32.const 0 end - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|083 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new local.tee $9 @@ -26694,10 +26692,10 @@ local.tee $10 i32.store $0 offset=4 local.get $10 - local.get $0 + local.get $2 i32.store $0 offset=12 local.get $10 - local.get $1 + local.get $0 i32.store $0 offset=8 local.get $10 local.get $9 @@ -26713,7 +26711,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $2 + local.set $0 i32.const 0 local.set $1 loop $for-loop|186 @@ -26729,7 +26727,7 @@ i32.load $0 local.tee $11 if - local.get $2 + local.get $0 local.get $9 i32.add local.get $11 @@ -26740,10 +26738,10 @@ i32.shl local.tee $11 memory.copy $0 $0 - local.get $2 + local.get $0 local.get $11 i32.add - local.set $2 + local.set $0 end local.get $1 i32.const 1 @@ -26753,29 +26751,29 @@ end end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|289 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $9 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $2 + local.tee $1 if local.get $9 - local.get $2 + local.get $1 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|289 end end @@ -26792,7 +26790,7 @@ i32.const 33 i32.const 15728 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store $0 offset=476 local.get $10 i32.load $0 offset=12 @@ -26807,22 +26805,22 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $1 local.get $0 + local.get $1 i32.load $0 offset=12 i32.lt_s if local.get $10 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer @@ -26840,10 +26838,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index be57e74131..1c2fda3bf4 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -11610,13 +11610,6 @@ ) (func $std/math/test_sincos (type $i64_i64_i64_i64_i64_=>_none) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (local $5 f64) - (local $6 f64) - local.get $3 - f64.reinterpret_i64 - local.set $5 - local.get $4 - f64.reinterpret_i64 - local.set $6 local.get $0 f64.reinterpret_i64 call $~lib/math/NativeMath.sincos @@ -11628,8 +11621,10 @@ call $std/math/check if global.get $~lib/math/NativeMath.sincos_cos - local.get $5 - local.get $6 + local.get $3 + f64.reinterpret_i64 + local.get $4 + f64.reinterpret_i64 call $std/math/check drop end diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index 8837c8a492..c80e81f05c 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1055,7 +1055,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1063,7 +1063,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1078,16 +1078,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1095,7 +1095,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1103,7 +1103,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1130,22 +1130,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1154,19 +1154,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 29889b2ffb..a2b752383d 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -1199,17 +1199,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1218,19 +1218,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 38eb728962..4e699d107e 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -43658,10 +43658,10 @@ (local $10 f64) (local $11 i64) (local $12 i32) - (local $13 f64) - (local $14 f32) - (local $15 i64) - (local $16 i32) + (local $13 i32) + (local $14 i64) + (local $15 f32) + (local $16 f64) global.get $~lib/memory/__stack_pointer i32.const 120 i32.sub @@ -45696,11 +45696,11 @@ i32.load $0 offset=8 local.set $3 loop $for-loop|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -45709,16 +45709,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 2896 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -45741,10 +45741,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -45770,16 +45770,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|019 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -45788,16 +45788,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 2928 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|019 end end @@ -45820,10 +45820,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -45849,16 +45849,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|029 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -45867,16 +45867,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 2960 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|029 end end @@ -45899,10 +45899,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -45928,19 +45928,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|034 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -45950,16 +45950,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 2992 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|034 end end @@ -45982,10 +45982,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -46011,19 +46011,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|040 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -46033,16 +46033,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 3024 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|040 end end @@ -46065,10 +46065,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -46094,19 +46094,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|046 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -46116,16 +46116,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 3056 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|046 end end @@ -46146,10 +46146,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -46175,19 +46175,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|052 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -46197,16 +46197,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 3088 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|052 end end @@ -46227,10 +46227,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -46254,19 +46254,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|058 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -46274,22 +46274,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 3120 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $15 - local.get $1 + local.set $14 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|058 end end - local.get $15 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -46306,10 +46306,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -46330,24 +46330,24 @@ i32.const 3152 i32.store $0 offset=4 i64.const 0 - local.set $15 + local.set $14 local.get $4 i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|064 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -46355,22 +46355,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 3152 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $15 - local.get $1 + local.set $14 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|064 end end - local.get $15 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -46387,10 +46387,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -46414,19 +46414,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|070 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -46434,22 +46434,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $15 local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 3184 i32.load $0 call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $1 + local.set $15 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|070 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner1 @@ -46466,10 +46466,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -46493,19 +46493,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|076 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -46513,22 +46513,22 @@ local.set $10 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $16 local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 3216 i32.load $0 call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $13 - local.get $1 + local.set $16 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|076 end end - local.get $13 + local.get $16 f64.const 6 f64.ne br_if $folding-inner1 @@ -46545,39 +46545,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int8Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int8Array#at i32.const 1 @@ -46596,39 +46596,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint8Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint8Array#at i32.const 1 @@ -46647,39 +46647,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint8ClampedArray#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint8ClampedArray#at i32.const 1 @@ -46698,39 +46698,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int16Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int16Array#at i32.const 1 @@ -46749,39 +46749,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint16Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint16Array#at i32.const 1 @@ -46800,39 +46800,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int32Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int32Array#at i32.const 1 @@ -46851,39 +46851,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint32Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint32Array#at i32.const 1 @@ -46902,39 +46902,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#at i64.const 1 i64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int64Array#at i64.const 3 i64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int64Array#at i64.const 1 @@ -46953,39 +46953,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#at i64.const 1 i64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint64Array#at i64.const 3 i64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint64Array#at i64.const 1 @@ -47004,39 +47004,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#at f32.const 1 f32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Float32Array#at f32.const 3 f32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Float32Array#at f32.const 1 @@ -47055,39 +47055,39 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#at f64.const 1 f64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Float64Array#at f64.const 3 f64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Float64Array#at f64.const 1 @@ -47106,10 +47106,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $4 @@ -47138,13 +47138,13 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|082 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_s $0 @@ -47153,16 +47153,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3248 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|082 end end @@ -47185,10 +47185,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $4 @@ -47217,13 +47217,13 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|088 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -47232,16 +47232,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3280 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|088 end end @@ -47264,10 +47264,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 @@ -47296,13 +47296,13 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|096 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -47311,16 +47311,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3312 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|096 end end @@ -47343,10 +47343,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $4 @@ -47377,14 +47377,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0102 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -47394,16 +47394,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3344 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0102 end end @@ -47426,10 +47426,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $4 @@ -47460,14 +47460,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0108 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -47477,16 +47477,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3376 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0108 end end @@ -47509,10 +47509,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $4 @@ -47543,14 +47543,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0114 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -47560,16 +47560,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3408 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0114 end end @@ -47590,10 +47590,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $4 @@ -47624,14 +47624,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0120 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -47641,16 +47641,16 @@ global.set $~argumentsLength local.get $9 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3440 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0120 end end @@ -47671,10 +47671,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -47695,7 +47695,7 @@ i32.const 3472 i32.store $0 offset=4 i64.const 0 - local.set $15 + local.set $14 local.get $3 i32.load $0 offset=4 local.set $2 @@ -47705,14 +47705,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0126 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -47720,22 +47720,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 3472 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $15 - local.get $1 + local.set $14 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0126 end end - local.get $15 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -47752,10 +47752,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $3 @@ -47776,7 +47776,7 @@ i32.const 3504 i32.store $0 offset=4 i64.const 0 - local.set $15 + local.set $14 local.get $3 i32.load $0 offset=4 local.set $2 @@ -47786,14 +47786,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0132 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -47801,22 +47801,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 3504 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $15 - local.get $1 + local.set $14 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0132 end end - local.get $15 + local.get $14 i64.const 6 i64.ne br_if $folding-inner5 @@ -47833,10 +47833,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $3 @@ -47857,7 +47857,7 @@ i32.const 3536 i32.store $0 offset=4 f32.const 0 - local.set $14 + local.set $15 local.get $3 i32.load $0 offset=4 local.set $2 @@ -47867,14 +47867,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0138 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -47882,22 +47882,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $15 local.get $6 - local.get $1 + local.get $0 local.get $3 i32.const 3536 i32.load $0 call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $1 + local.set $15 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0138 end end - local.get $14 + local.get $15 f32.const 6 f32.ne br_if $folding-inner5 @@ -47914,10 +47914,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $3 @@ -47938,7 +47938,7 @@ i32.const 3568 i32.store $0 offset=4 f64.const 0 - local.set $13 + local.set $16 local.get $3 i32.load $0 offset=4 local.set $2 @@ -47948,14 +47948,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|0144 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -47963,22 +47963,22 @@ local.set $10 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $16 local.get $10 - local.get $1 + local.get $0 local.get $3 i32.const 3568 i32.load $0 call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $13 - local.get $1 + local.set $16 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0144 end end - local.get $13 + local.get $16 f64.const 6 f64.ne br_if $folding-inner5 @@ -47995,13 +47995,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $8 @@ -48032,7 +48032,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $8 @@ -48041,7 +48041,7 @@ local.get $8 i32.load $0 offset=4 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -48055,30 +48055,30 @@ i32.store $0 offset=4 loop $for-loop|01 local.get $5 - local.get $16 + local.get $13 i32.gt_s if local.get $4 - local.get $16 + local.get $13 i32.add i32.load8_s $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $16 + local.get $13 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $8 i32.const 3600 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|01 end end @@ -48127,7 +48127,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48137,13 +48137,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $8 @@ -48174,7 +48174,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $8 @@ -48183,7 +48183,7 @@ local.get $8 i32.load $0 offset=4 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -48197,30 +48197,30 @@ i32.store $0 offset=4 loop $for-loop|03 local.get $5 - local.get $16 + local.get $13 i32.gt_s if local.get $4 - local.get $16 + local.get $13 i32.add i32.load8_u $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $16 + local.get $13 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $8 i32.const 3632 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|03 end end @@ -48269,7 +48269,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48279,13 +48279,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $8 @@ -48316,7 +48316,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $8 @@ -48325,7 +48325,7 @@ local.get $8 i32.load $0 offset=4 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -48339,30 +48339,30 @@ i32.store $0 offset=4 loop $for-loop|06 local.get $5 - local.get $16 + local.get $13 i32.gt_s if local.get $4 - local.get $16 + local.get $13 i32.add i32.load8_u $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $16 + local.get $13 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $8 i32.const 3664 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|06 end end @@ -48411,7 +48411,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48421,13 +48421,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $12 @@ -48458,7 +48458,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $12 @@ -48469,7 +48469,7 @@ local.get $12 i32.load $0 offset=4 local.set $7 - local.get $1 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new @@ -48486,33 +48486,33 @@ i32.store $0 offset=4 loop $for-loop|09 local.get $8 - local.get $16 + local.get $13 i32.gt_s if local.get $7 - local.get $16 + local.get $13 i32.const 1 i32.shl local.tee $2 i32.add i32.load16_s $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 local.get $3 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $12 i32.const 3696 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|09 end end @@ -48561,7 +48561,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48571,13 +48571,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $12 @@ -48608,7 +48608,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $12 @@ -48619,7 +48619,7 @@ local.get $12 i32.load $0 offset=4 local.set $7 - local.get $1 + local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new @@ -48636,33 +48636,33 @@ i32.store $0 offset=4 loop $for-loop|012 local.get $8 - local.get $16 + local.get $13 i32.gt_s if local.get $7 - local.get $16 + local.get $13 i32.const 1 i32.shl local.tee $2 i32.add i32.load16_u $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 local.get $3 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $12 i32.const 3728 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|012 end end @@ -48711,7 +48711,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48721,13 +48721,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $12 @@ -48758,7 +48758,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $12 @@ -48769,7 +48769,7 @@ local.get $12 i32.load $0 offset=4 local.set $7 - local.get $1 + local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new @@ -48786,33 +48786,33 @@ i32.store $0 offset=4 loop $for-loop|015 local.get $8 - local.get $16 + local.get $13 i32.gt_s if local.get $7 - local.get $16 + local.get $13 i32.const 2 i32.shl local.tee $2 i32.add i32.load $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 local.get $3 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $12 i32.const 3760 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|015 end end @@ -48861,7 +48861,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48871,13 +48871,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $12 @@ -48908,7 +48908,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $12 @@ -48919,7 +48919,7 @@ local.get $12 i32.load $0 offset=4 local.set $7 - local.get $1 + local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new @@ -48936,33 +48936,33 @@ i32.store $0 offset=4 loop $for-loop|018 local.get $8 - local.get $16 + local.get $13 i32.gt_s if local.get $7 - local.get $16 + local.get $13 i32.const 2 i32.shl local.tee $2 i32.add i32.load $0 - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 local.get $3 i32.add - local.get $1 - local.get $16 + local.get $0 + local.get $13 local.get $12 i32.const 3792 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|018 end end @@ -49011,7 +49011,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49021,13 +49021,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $9 @@ -49058,7 +49058,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $9 @@ -49069,7 +49069,7 @@ local.get $9 i32.load $0 offset=4 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -49086,33 +49086,33 @@ i32.store $0 offset=4 loop $for-loop|021 local.get $7 - local.get $16 + local.get $13 i32.gt_s if local.get $5 - local.get $16 + local.get $13 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add i64.load $0 local.set $11 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.add local.get $11 - local.get $16 + local.get $13 local.get $9 i32.const 3824 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|021 end end @@ -49161,7 +49161,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49171,13 +49171,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $9 @@ -49208,7 +49208,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $9 @@ -49219,7 +49219,7 @@ local.get $9 i32.load $0 offset=4 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -49236,33 +49236,33 @@ i32.store $0 offset=4 loop $for-loop|024 local.get $7 - local.get $16 + local.get $13 i32.gt_s if local.get $5 - local.get $16 + local.get $13 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add i64.load $0 local.set $11 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.add local.get $11 - local.get $16 + local.get $13 local.get $9 i32.const 3856 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|024 end end @@ -49311,7 +49311,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49321,13 +49321,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $9 @@ -49358,7 +49358,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $9 @@ -49369,7 +49369,7 @@ local.get $9 i32.load $0 offset=4 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -49386,33 +49386,33 @@ i32.store $0 offset=4 loop $for-loop|027 local.get $7 - local.get $16 + local.get $13 i32.gt_s if local.get $5 - local.get $16 + local.get $13 i32.const 2 i32.shl - local.tee $1 + local.tee $0 i32.add f32.load $0 local.set $6 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.add local.get $6 - local.get $16 + local.get $13 local.get $9 i32.const 3888 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|027 end end @@ -49461,7 +49461,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $16 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49471,13 +49471,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $9 @@ -49508,7 +49508,7 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 local.get $9 @@ -49519,7 +49519,7 @@ local.get $9 i32.load $0 offset=4 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new @@ -49536,33 +49536,33 @@ i32.store $0 offset=4 loop $for-loop|030 local.get $7 - local.get $16 + local.get $13 i32.gt_s if local.get $5 - local.get $16 + local.get $13 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add f64.load $0 local.set $10 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.add local.get $10 - local.get $16 + local.get $13 local.get $9 i32.const 3920 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store $0 - local.get $16 + local.get $13 i32.const 1 i32.add - local.set $16 + local.set $13 br $for-loop|030 end end @@ -49630,10 +49630,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -49658,16 +49658,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0150 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -49676,17 +49676,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4304 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0150 end end @@ -49702,16 +49702,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0158 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -49720,17 +49720,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4336 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0153 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0158 end end @@ -49750,10 +49750,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -49778,16 +49778,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0164 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -49796,17 +49796,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4368 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0164 end end @@ -49822,16 +49822,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0172 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -49840,17 +49840,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4400 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0167 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0172 end end @@ -49870,10 +49870,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -49898,16 +49898,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0180 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -49916,17 +49916,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4432 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0175 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0180 end end @@ -49942,16 +49942,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0188 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -49960,17 +49960,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4464 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0183 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0188 end end @@ -49990,10 +49990,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -50018,19 +50018,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0194 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -50040,17 +50040,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4496 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0194 end end @@ -50066,19 +50066,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0202 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -50088,17 +50088,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4528 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0197 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0202 end end @@ -50118,10 +50118,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -50146,19 +50146,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0208 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -50168,17 +50168,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4560 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0208 end end @@ -50194,19 +50194,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0216 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -50216,17 +50216,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4592 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0211 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0216 end end @@ -50246,10 +50246,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -50274,19 +50274,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0222 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50296,17 +50296,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4624 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0222 end end @@ -50322,19 +50322,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0230 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50344,17 +50344,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4656 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0225 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0230 end end @@ -50374,10 +50374,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -50402,19 +50402,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0236 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50424,17 +50424,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4688 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0236 end end @@ -50450,19 +50450,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0244 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50472,17 +50472,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 4720 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0239 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0244 end end @@ -50502,10 +50502,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -50530,19 +50530,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0250 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50552,17 +50552,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 4752 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0250 end end @@ -50578,19 +50578,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0258 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50600,17 +50600,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 4784 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0253 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0258 end end @@ -50630,10 +50630,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -50658,19 +50658,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0264 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50680,17 +50680,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 4816 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0264 end end @@ -50706,19 +50706,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0272 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50728,17 +50728,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 4848 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0267 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0272 end end @@ -50758,10 +50758,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -50786,19 +50786,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|0278 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50808,17 +50808,17 @@ global.set $~argumentsLength i32.const 1 local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 4880 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0278 end end @@ -50834,19 +50834,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|0286 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -50856,17 +50856,17 @@ global.set $~argumentsLength i32.const 1 local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 4912 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0281 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0286 end end @@ -50886,10 +50886,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -50914,19 +50914,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0292 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50936,17 +50936,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 4944 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0292 end end @@ -50962,19 +50962,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0300 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -50984,17 +50984,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 4976 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0295 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0300 end end @@ -51014,10 +51014,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -51041,17 +51041,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|0306 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -51059,23 +51059,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5008 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0306 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51086,17 +51086,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 loop $for-loop|0314 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -51104,23 +51104,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5040 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0314 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51137,10 +51137,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -51164,17 +51164,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|0320 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -51182,23 +51182,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5072 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0320 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51209,17 +51209,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 loop $for-loop|0328 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -51227,23 +51227,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5104 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0328 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51260,10 +51260,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -51287,17 +51287,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 loop $for-loop|0336 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -51305,23 +51305,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5136 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0336 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51332,17 +51332,17 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 loop $for-loop|0344 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -51350,23 +51350,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5168 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0344 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51383,10 +51383,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -51410,7 +51410,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 @@ -51418,12 +51418,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|0350 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -51432,23 +51432,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0350 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51459,7 +51459,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 @@ -51467,12 +51467,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 loop $for-loop|0358 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -51481,23 +51481,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0358 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51514,10 +51514,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -51541,7 +51541,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 @@ -51549,12 +51549,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|0364 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -51563,23 +51563,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0364 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51590,7 +51590,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 @@ -51598,12 +51598,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 loop $for-loop|0372 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -51612,23 +51612,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0372 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51645,10 +51645,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -51672,7 +51672,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 @@ -51680,12 +51680,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|0378 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -51694,23 +51694,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0378 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51721,7 +51721,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 @@ -51729,12 +51729,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 loop $for-loop|0386 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -51743,23 +51743,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0386 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51776,10 +51776,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -51803,7 +51803,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 @@ -51811,12 +51811,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|0392 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -51825,23 +51825,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0392 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51852,7 +51852,7 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 @@ -51860,12 +51860,12 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 loop $for-loop|0400 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -51874,23 +51874,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 5424 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0400 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -51907,10 +51907,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -51934,7 +51934,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -51942,12 +51942,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|0406 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -51956,23 +51956,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 5456 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0406 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -51983,7 +51983,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -51991,12 +51991,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 loop $for-loop|0414 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -52005,23 +52005,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 5488 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0414 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -52038,10 +52038,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -52065,7 +52065,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -52073,12 +52073,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|0420 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -52087,23 +52087,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 5520 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0420 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -52114,7 +52114,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -52122,12 +52122,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 loop $for-loop|0428 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -52136,23 +52136,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 5552 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0428 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -52169,10 +52169,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -52196,7 +52196,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 @@ -52204,12 +52204,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|0434 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -52218,23 +52218,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 5584 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0434 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -52245,7 +52245,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 @@ -52253,12 +52253,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 loop $for-loop|0442 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -52267,23 +52267,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 5616 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0442 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -52300,10 +52300,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -52327,7 +52327,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -52335,12 +52335,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|0448 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -52349,23 +52349,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 5648 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0448 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner8 @@ -52376,7 +52376,7 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 @@ -52384,12 +52384,12 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 loop $for-loop|0456 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -52398,23 +52398,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 5680 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0456 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner9 @@ -52431,10 +52431,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $4 @@ -52461,14 +52461,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|0462 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_s $0 @@ -52476,23 +52476,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5712 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0462 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -52506,14 +52506,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 loop $for-loop|0470 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_s $0 @@ -52521,23 +52521,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5744 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0470 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -52554,10 +52554,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $4 @@ -52584,14 +52584,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|0476 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -52599,23 +52599,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5776 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0476 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -52629,14 +52629,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 loop $for-loop|0484 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -52644,23 +52644,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5808 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0484 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -52677,10 +52677,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 @@ -52707,14 +52707,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 loop $for-loop|0492 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -52722,23 +52722,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5840 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0492 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -52752,14 +52752,14 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 loop $for-loop|0500 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u $0 @@ -52767,23 +52767,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5872 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0500 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -52800,10 +52800,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $4 @@ -52832,15 +52832,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|0506 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -52849,23 +52849,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5904 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0506 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -52881,15 +52881,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 loop $for-loop|0514 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -52898,23 +52898,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5936 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0514 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -52931,10 +52931,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $4 @@ -52963,15 +52963,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|0520 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -52980,23 +52980,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 5968 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0520 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53012,15 +53012,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 loop $for-loop|0528 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -53029,23 +53029,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 6000 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0528 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53062,10 +53062,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $4 @@ -53094,15 +53094,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|0534 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53111,23 +53111,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 6032 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0534 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53143,15 +53143,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 loop $for-loop|0542 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53160,23 +53160,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 6064 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0542 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53193,10 +53193,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $4 @@ -53225,15 +53225,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|0548 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53242,23 +53242,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 6096 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0548 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53274,15 +53274,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 loop $for-loop|0556 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53291,23 +53291,23 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 6128 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0556 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53324,10 +53324,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -53356,15 +53356,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|0562 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53373,23 +53373,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 6160 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0562 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53405,15 +53405,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 loop $for-loop|0570 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53422,23 +53422,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 6192 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0570 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53455,10 +53455,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $3 @@ -53487,15 +53487,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|0576 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53504,23 +53504,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 6224 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0576 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53536,15 +53536,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 loop $for-loop|0584 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53553,23 +53553,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $3 i32.const 6256 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0584 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53586,10 +53586,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $3 @@ -53618,15 +53618,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|0590 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53635,23 +53635,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $0 local.get $3 i32.const 6288 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0590 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53667,15 +53667,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 loop $for-loop|0598 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -53684,23 +53684,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $0 local.get $3 i32.const 6320 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0598 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53717,10 +53717,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $3 @@ -53749,15 +53749,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|0604 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53766,23 +53766,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $1 + local.get $0 local.get $3 i32.const 6352 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0604 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne br_if $folding-inner10 @@ -53798,15 +53798,15 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 loop $for-loop|0612 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -53815,23 +53815,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $1 + local.get $0 local.get $3 i32.const 6384 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0612 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne br_if $folding-inner11 @@ -53848,10 +53848,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -53876,16 +53876,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0618 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -53894,7 +53894,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6416 i32.load $0 @@ -53902,10 +53902,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0618 end end @@ -53921,16 +53921,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0626 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -53939,7 +53939,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6448 i32.load $0 @@ -53947,10 +53947,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0621 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0626 end end @@ -53970,10 +53970,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -53998,16 +53998,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0632 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -54016,7 +54016,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6480 i32.load $0 @@ -54024,10 +54024,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0632 end end @@ -54043,16 +54043,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0640 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -54061,7 +54061,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6512 i32.load $0 @@ -54069,10 +54069,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0635 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0640 end end @@ -54092,10 +54092,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -54120,16 +54120,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0648 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -54138,7 +54138,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6544 i32.load $0 @@ -54146,10 +54146,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0643 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0648 end end @@ -54165,16 +54165,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0656 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -54183,7 +54183,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6576 i32.load $0 @@ -54191,10 +54191,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0651 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0656 end end @@ -54214,10 +54214,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -54242,19 +54242,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0662 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -54264,7 +54264,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6608 i32.load $0 @@ -54272,10 +54272,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0662 end end @@ -54291,19 +54291,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0670 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -54313,7 +54313,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6640 i32.load $0 @@ -54321,10 +54321,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0665 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0670 end end @@ -54344,10 +54344,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -54372,19 +54372,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0676 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -54394,7 +54394,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6672 i32.load $0 @@ -54402,10 +54402,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0676 end end @@ -54421,19 +54421,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0684 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -54443,7 +54443,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6704 i32.load $0 @@ -54451,10 +54451,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0679 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0684 end end @@ -54474,10 +54474,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -54502,19 +54502,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0690 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -54524,7 +54524,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6736 i32.load $0 @@ -54532,10 +54532,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0690 end end @@ -54551,19 +54551,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0698 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -54573,7 +54573,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6768 i32.load $0 @@ -54581,10 +54581,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0693 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0698 end end @@ -54604,10 +54604,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -54632,19 +54632,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0704 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -54654,7 +54654,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6800 i32.load $0 @@ -54662,10 +54662,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0704 end end @@ -54681,19 +54681,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0712 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -54703,7 +54703,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 6832 i32.load $0 @@ -54711,10 +54711,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0707 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0712 end end @@ -54734,10 +54734,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -54762,19 +54762,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0718 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -54784,7 +54784,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 6864 i32.load $0 @@ -54792,10 +54792,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0718 end end @@ -54811,19 +54811,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0726 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -54833,7 +54833,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 6896 i32.load $0 @@ -54841,10 +54841,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0721 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0726 end end @@ -54864,10 +54864,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -54892,19 +54892,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0732 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -54914,7 +54914,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 6928 i32.load $0 @@ -54922,10 +54922,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0732 end end @@ -54941,19 +54941,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0740 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -54963,7 +54963,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 6960 i32.load $0 @@ -54971,10 +54971,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0735 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0740 end end @@ -54994,10 +54994,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -55022,19 +55022,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|0746 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -55044,7 +55044,7 @@ global.set $~argumentsLength i32.const 0 local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 6992 i32.load $0 @@ -55052,10 +55052,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0746 end end @@ -55071,19 +55071,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|0754 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -55093,7 +55093,7 @@ global.set $~argumentsLength i32.const 0 local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 7024 i32.load $0 @@ -55101,10 +55101,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0749 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0754 end end @@ -55124,10 +55124,10 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -55152,19 +55152,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0760 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -55174,7 +55174,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 7056 i32.load $0 @@ -55182,10 +55182,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0760 end end @@ -55201,19 +55201,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0768 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -55223,7 +55223,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 7088 i32.load $0 @@ -55231,10 +55231,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0763 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0768 end end @@ -55254,15 +55254,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -55306,16 +55306,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0774 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_s $0 @@ -55323,15 +55323,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0774 end end @@ -55352,15 +55352,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -55407,16 +55407,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0780 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -55424,15 +55424,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0780 end end @@ -55453,15 +55453,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -55508,16 +55508,16 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 local.set $3 loop $for-loop|0788 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $4 i32.add i32.load8_u $0 @@ -55525,15 +55525,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0788 end end @@ -55554,15 +55554,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -55606,19 +55606,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0794 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -55627,15 +55627,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0794 end end @@ -55656,15 +55656,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -55711,19 +55711,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 loop $for-loop|0800 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl i32.add @@ -55732,15 +55732,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0800 end end @@ -55761,15 +55761,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -55810,19 +55810,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0806 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -55831,15 +55831,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0806 end end @@ -55860,15 +55860,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -55909,19 +55909,19 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $0 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 loop $for-loop|0812 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -55930,15 +55930,15 @@ i32.const 3 global.set $~argumentsLength local.get $2 - local.get $1 + local.get $0 local.get $5 i32.const 7392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0812 end end @@ -55959,15 +55959,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -56011,19 +56011,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0818 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -56032,15 +56032,15 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 7424 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0818 end end @@ -56061,15 +56061,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -56113,19 +56113,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0824 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -56134,15 +56134,15 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $1 + local.get $0 local.get $4 i32.const 7456 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0824 end end @@ -56163,15 +56163,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -56215,19 +56215,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|0830 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -56236,15 +56236,15 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $0 local.get $4 i32.const 7488 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0830 end end @@ -56265,15 +56265,15 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -56317,19 +56317,19 @@ i32.load $0 offset=4 local.set $3 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load $0 offset=8 i32.const 3 i32.shr_u local.set $2 loop $for-loop|0836 - local.get $1 + local.get $0 local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -56338,15 +56338,15 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $1 + local.get $0 local.get $4 i32.const 7520 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0836 end end @@ -56359,7 +56359,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56389,28 +56389,28 @@ local.tee $3 i32.store $0 offset=8 loop $for-loop|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set local.get $3 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -56418,29 +56418,29 @@ call $~lib/typedarray/Int8Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#__get i32.const 7616 local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get i32.extend8_s i32.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -56450,34 +56450,34 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=12 local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne br_if $folding-inner26 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -56488,7 +56488,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56518,30 +56518,30 @@ local.tee $3 i32.store $0 offset=8 loop $for-loop|0633 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set local.get $3 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0633 end end @@ -56549,30 +56549,30 @@ call $~lib/typedarray/Int8Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $for-loop|17 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Uint8Array#__get i32.const 7616 local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|17 end end @@ -56581,34 +56581,34 @@ local.get $3 i32.const 8 call $~lib/typedarray/Uint8Array#subarray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=12 local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.ne br_if $folding-inner26 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -56619,7 +56619,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56649,30 +56649,30 @@ local.tee $3 i32.store $0 offset=8 loop $for-loop|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set local.get $3 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|08 end end @@ -56680,30 +56680,30 @@ call $~lib/typedarray/Int8Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $for-loop|19 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|19 end end @@ -56712,34 +56712,34 @@ local.get $3 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=12 local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.ne br_if $folding-inner26 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -56750,7 +56750,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56780,28 +56780,28 @@ local.tee $3 i32.store $0 offset=8 loop $for-loop|010 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set local.get $3 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|010 end end @@ -56809,29 +56809,29 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $for-loop|111 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#__get i32.const 7616 local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get i32.extend16_s i32.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|111 end end @@ -56840,34 +56840,34 @@ local.get $3 i32.const 8 call $~lib/typedarray/Int16Array#subarray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=12 local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 8 i32.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 7 i32.ne br_if $folding-inner26 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 6 i32.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -56878,7 +56878,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56908,30 +56908,30 @@ local.tee $3 i32.store $0 offset=8 loop $for-loop|01234 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set local.get $3 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|01234 end end @@ -56939,30 +56939,30 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $for-loop|113 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Uint16Array#__get i32.const 7616 local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get i32.const 65535 i32.and i32.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|113 end end @@ -56971,34 +56971,34 @@ local.get $3 i32.const 8 call $~lib/typedarray/Uint16Array#subarray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=12 local.get $2 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#reverse - local.tee $1 + local.tee $0 i32.store $0 offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 8 i32.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 7 i32.ne br_if $folding-inner26 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 6 i32.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -57035,7 +57035,7 @@ f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $4 i32.load $0 offset=8 @@ -57052,13 +57052,13 @@ i32.load $0 offset=4 local.set $2 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl i32.add @@ -57066,17 +57066,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -57089,7 +57089,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 local.get $4 i32.load $0 offset=8 @@ -57104,15 +57104,15 @@ drop local.get $4 i32.load $0 offset=4 - local.set $0 + local.set $1 loop $while-continue|014 - local.get $1 + local.get $0 local.get $2 i32.lt_s if i32.const 1 - local.get $0 local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -57122,10 +57122,10 @@ f64.ne br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end @@ -57150,9 +57150,9 @@ f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $4 i32.load $0 offset=8 @@ -57169,13 +57169,13 @@ i32.load $0 offset=4 local.set $2 loop $while-continue|015 - local.get $0 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add @@ -57183,17 +57183,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -57206,7 +57206,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 local.get $4 i32.load $0 offset=8 @@ -57221,15 +57221,15 @@ drop local.get $4 i32.load $0 offset=4 - local.set $0 + local.set $1 loop $while-continue|0845 - local.get $1 + local.get $0 local.get $2 i32.lt_s if i32.const 1 - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -57239,10 +57239,10 @@ f32.ne br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0845 end end @@ -58465,24 +58465,24 @@ local.tee $2 i32.store $0 offset=4 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|0865 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0865 end end @@ -58513,27 +58513,27 @@ local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 + local.tee $1 i32.store $0 offset=16 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|116 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get local.get $0 + call $~lib/typedarray/Uint8Array#__get local.get $1 + local.get $0 call $~lib/typedarray/Uint8Array#__get i32.ne br_if $folding-inner29 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|116 end end @@ -59903,7 +59903,7 @@ i32.const 11008 i32.store $0 offset=16 i32.const 0 - local.set $1 + local.set $0 i32.const 11020 i32.load $0 local.tee $4 @@ -59920,26 +59920,26 @@ i32.load $0 local.set $2 loop $for-loop|0878 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.add - local.get $0 + local.get $1 local.get $2 i32.add i32.load $0 f32.convert_i32_s f32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0878 end end @@ -60048,16 +60048,16 @@ local.set $2 local.get $8 i32.load $0 offset=4 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0896 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -60067,10 +60067,10 @@ i32.load8_u $0 f32.convert_i32_u f32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0896 end end @@ -60094,31 +60094,31 @@ local.set $2 local.get $7 i32.load $0 offset=4 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0905 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_s $0 f32.convert_i32_s f32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0905 end end @@ -60143,16 +60143,16 @@ local.set $2 i32.const 11268 i32.load $0 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0914 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -60162,10 +60162,10 @@ i32.load8_s $0 f32.convert_i32_s f32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0914 end end @@ -60262,7 +60262,7 @@ i32.const 11008 i32.store $0 offset=16 i32.const 0 - local.set $1 + local.set $0 i32.const 11020 i32.load $0 local.tee $3 @@ -60277,29 +60277,29 @@ local.set $2 i32.const 11012 i32.load $0 - local.set $0 + local.set $1 loop $for-loop|0923 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 f64.convert_i32_s f64.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0923 end end @@ -60336,31 +60336,31 @@ local.set $2 i32.const 11092 i32.load $0 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0932 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add f32.load $0 f64.promote_f32 f64.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0932 end end @@ -60449,16 +60449,16 @@ local.set $2 local.get $7 i32.load $0 offset=4 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0949 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -60468,10 +60468,10 @@ i32.load8_u $0 f64.convert_i32_u f64.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0949 end end @@ -60495,31 +60495,31 @@ local.set $2 local.get $5 i32.load $0 offset=4 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0958 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_s $0 f64.convert_i32_s f64.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0958 end end @@ -60544,16 +60544,16 @@ local.set $2 i32.const 11268 i32.load $0 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0967 - local.get $1 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 3 i32.shl i32.add @@ -60563,10 +60563,10 @@ i32.load8_s $0 f64.convert_i32_s f64.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0967 end end @@ -60660,19 +60660,19 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $0 - i32.const 0 local.set $1 + i32.const 0 + local.set $0 loop $for-loop|0976 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 + local.get $0 local.get $2 i32.add - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -60691,10 +60691,10 @@ f32.eq select i32.store8 $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0976 end end @@ -60722,39 +60722,39 @@ i32.load $0 offset=4 local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|0985 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.const 255 local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $0 + local.tee $1 i32.sub i32.const 31 i32.shr_s - local.get $0 + local.get $1 i32.or - local.get $0 + local.get $1 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0985 end end @@ -60828,32 +60828,32 @@ i32.load $0 offset=4 local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|0994 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.const 255 local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 255 i32.gt_u select i32.store8 $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0994 end end @@ -60874,7 +60874,7 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -60884,13 +60884,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $2 @@ -60908,7 +60908,7 @@ i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -60931,7 +60931,7 @@ unreachable end i32.const 15344 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15344 i32.store $0 @@ -60940,13 +60940,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -60999,7 +60999,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61009,13 +61009,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -61033,7 +61033,7 @@ i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61056,7 +61056,7 @@ unreachable end i32.const 15408 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15408 i32.store $0 @@ -61065,13 +61065,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61124,7 +61124,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61134,13 +61134,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 @@ -61158,7 +61158,7 @@ i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61181,7 +61181,7 @@ unreachable end i32.const 15472 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15472 i32.store $0 @@ -61190,13 +61190,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61249,7 +61249,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61259,13 +61259,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 @@ -61283,7 +61283,7 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61306,7 +61306,7 @@ unreachable end i32.const 15536 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store $0 @@ -61317,13 +61317,13 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61378,7 +61378,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61388,13 +61388,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $2 @@ -61412,7 +61412,7 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61435,7 +61435,7 @@ unreachable end i32.const 15600 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store $0 @@ -61446,13 +61446,13 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61507,7 +61507,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61517,13 +61517,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $2 @@ -61541,7 +61541,7 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61564,7 +61564,7 @@ unreachable end i32.const 15664 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store $0 @@ -61575,13 +61575,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61636,7 +61636,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61646,13 +61646,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $2 @@ -61670,7 +61670,7 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61693,7 +61693,7 @@ unreachable end i32.const 15728 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store $0 @@ -61704,13 +61704,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61765,7 +61765,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61775,13 +61775,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $2 @@ -61799,7 +61799,7 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61822,7 +61822,7 @@ unreachable end i32.const 15792 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store $0 @@ -61833,13 +61833,13 @@ i32.load $0 offset=8 i32.const 3 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61894,7 +61894,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61904,13 +61904,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $2 @@ -61928,7 +61928,7 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61951,7 +61951,7 @@ unreachable end i32.const 15856 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store $0 @@ -61962,13 +61962,13 @@ i32.load $0 offset=8 i32.const 3 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 @@ -62023,7 +62023,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62033,13 +62033,13 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 0 i32.store $0 offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $2 @@ -62057,7 +62057,7 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -62080,7 +62080,7 @@ unreachable end i32.const 15920 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store $0 @@ -62091,13 +62091,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store $0 offset=4 local.get $2 diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 74817c2fbb..9847c03860 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -2203,7 +2203,7 @@ local.set $this|1 i32.const 1 ) - (func $super-inline/Foo#a@virtual (type $i32_=>_i32) (param $0 i32) (result i32) + (func $super-inline/Foo#a@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) block $default block $case0 @@ -2339,7 +2339,7 @@ local.get $0 i32.store $0 local.get $0 - call $super-inline/Foo#a@virtual + call $super-inline/Foo#a@override drop i32.const 0 call $super-inline/Bar#constructor diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index f899982b71..5cec6628cf 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1142,17 +1142,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load $0 - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1161,19 +1161,19 @@ local.get $1 i32.const 32 i32.add - local.tee $4 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 local.get $2 - local.get $4 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store $0 @@ -1324,14 +1324,14 @@ global.get $super-inline/foo local.tee $0 i32.store $0 - block $__inlined_func$super-inline/Foo#a@virtual + block $__inlined_func$super-inline/Foo#a@override local.get $0 i32.const 8 i32.sub i32.load $0 i32.const 4 i32.eq - br_if $__inlined_func$super-inline/Foo#a@virtual + br_if $__inlined_func$super-inline/Foo#a@override end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 1a6300fcae..aeda61ef6f 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1194,7 +1194,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1202,7 +1202,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1217,16 +1217,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1234,7 +1234,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1242,7 +1242,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1269,22 +1269,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1293,19 +1293,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index 71672e3526..5dc17bea6d 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1050,7 +1050,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1058,7 +1058,7 @@ memory.size $0 local.tee $0 i32.const 4 - local.get $2 + local.get $1 i32.load $0 offset=1568 local.get $0 i32.const 16 @@ -1073,16 +1073,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow $0 i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow $0 i32.const 0 i32.lt_s @@ -1090,7 +1090,7 @@ unreachable end end - local.get $2 + local.get $1 local.get $0 i32.const 16 i32.shl @@ -1098,7 +1098,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1125,22 +1125,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load $0 - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $3 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1149,19 +1149,19 @@ local.get $0 i32.const 32 i32.add - local.tee $3 - local.get $1 + local.tee $2 + local.get $3 i32.const 4 i32.sub i32.const 1 i32.or i32.store $0 + local.get $1 local.get $2 - local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store $0 From 2ca10ec1d9b6794b35f004a6259d55a97093fdd1 Mon Sep 17 00:00:00 2001 From: dcode Date: Sun, 6 Nov 2022 19:33:25 +0100 Subject: [PATCH 12/13] generate static instanceof helpers that also work with interfaces --- src/builtins.ts | 61 --- src/compiler.ts | 274 +++++++++-- tests/compiler/instanceof-class.debug.wat | 121 +++-- tests/compiler/instanceof-class.release.wat | 432 ++++++++--------- tests/compiler/managed-cast.debug.wat | 79 +--- tests/compiler/managed-cast.release.wat | 152 ++---- tests/compiler/rt/instanceof.debug.wat | 132 ++---- tests/compiler/rt/instanceof.release.wat | 486 ++++++-------------- 8 files changed, 741 insertions(+), 996 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index ef2e7dbb51..79ad94f71a 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -82,7 +82,6 @@ import { FunctionPrototype, Global, DecoratorFlags, - ClassPrototype, Class, PropertyPrototype } from "./program"; @@ -10458,66 +10457,6 @@ export function compileRTTI(compiler: Compiler): void { } } -/** Compiles a class-specific instanceof helper, checking a ref against all concrete instances. */ -export function compileClassInstanceOf(compiler: Compiler, prototype: ClassPrototype): void { - let module = compiler.module; - let sizeTypeRef = compiler.options.sizeTypeRef; - let instanceofInstance = assert(prototype.program.instanceofInstance); - compiler.compileFunction(instanceofInstance); - - let stmts = new Array(); - - // if (!ref) return false - stmts.push( - module.if( - module.unary( - sizeTypeRef == TypeRef.I64 - ? UnaryOp.EqzI64 - : UnaryOp.EqzI32, - module.local_get(0, sizeTypeRef) - ), - module.return( - module.i32(0) - ) - ) - ); - - // if (__instanceof(ref, ID[i])) return true - let instances = prototype.instances; - if (instances && instances.size > 0) { - // TODO: for (let instance of instances.values()) { - for (let _values = Map_values(instances), i = 0, k = _values.length; i < k; ++i) { - let instance = unchecked(_values[i]); - stmts.push( - module.if( - module.call(instanceofInstance.internalName, [ - module.local_get(0, sizeTypeRef), - module.i32(instance.id) - ], TypeRef.I32), - module.return( - module.i32(1) - ) - ) - ); - } - } - - // return false - stmts.push( - module.return( - module.i32(0) - ) - ); - - module.addFunction( - `${prototype.internalName}~instanceof`, - sizeTypeRef, - TypeRef.I32, - null, - module.flatten(stmts) - ); -} - // Helpers let checkConstantType_expr: ExpressionRef = 0; diff --git a/src/compiler.ts b/src/compiler.ts index 92c5014a4f..c7a63b7461 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10,8 +10,7 @@ import { function_builtins, compileVisitGlobals, compileVisitMembers, - compileRTTI, - compileClassInstanceOf + compileRTTI } from "./builtins"; import { @@ -418,8 +417,8 @@ export class Compiler extends DiagnosticEmitter { inlineStack: Function[] = []; /** Lazily compiled functions. */ lazyFunctions: Set = new Set(); - /** Pending class-specific instanceof helpers. */ - pendingClassInstanceOf: Set = new Set(); + /** Pending instanceof helpers and their names. */ + pendingInstanceOf: Map = new Map(); /** Stubs to defer calls to overridden methods. */ overrideStubs: Set = new Set(); /** Elements currently undergoing compilation. */ @@ -554,11 +553,17 @@ export class Compiler extends DiagnosticEmitter { } } while (lazyFunctions.size); - // compile pending class-specific instanceof helpers - // TODO: for (let prototype of this.pendingClassInstanceOf.values()) { - for (let _values = Set_values(this.pendingClassInstanceOf), i = 0, k = _values.length; i < k; ++i) { - let prototype = unchecked(_values[i]); - compileClassInstanceOf(this, prototype); + // compile pending instanceof helpers + for (let _keys = Map_keys(this.pendingInstanceOf), i = 0, k = _keys.length; i < k; ++i) { + let elem = _keys[i]; + let name = assert(this.pendingInstanceOf.get(elem)); + if (elem.kind == ElementKind.Class) { + this.finalizeInstanceOf(elem, name); + } else if (elem.kind == ElementKind.ClassPrototype) { + this.finalizeAnyInstanceOf(elem, name); + } else { + assert(false); + } } // set up override stubs @@ -7587,13 +7592,16 @@ export class Compiler extends DiagnosticEmitter { // downcast - check dynamically if (expectedType.isAssignableTo(actualType)) { - let program = this.program; if (!(actualType.isUnmanaged || expectedType.isUnmanaged)) { + if (this.options.pedantic) { + this.pedantic( + DiagnosticCode.Expression_compiles_to_a_dynamic_check_at_runtime, + expression.range + ); + } let temp = flow.getTempLocal(actualType); let tempIndex = temp.index; - let instanceofInstance = assert(program.instanceofInstance); - this.compileFunction(instanceofInstance); - let ret = module.if( + return module.if( module.unary( sizeTypeRef == TypeRef.I64 ? UnaryOp.EqzI64 @@ -7601,18 +7609,10 @@ export class Compiler extends DiagnosticEmitter { module.local_tee(tempIndex, expr, actualType.isManaged), ), module.i32(0), - this.makeCallDirect(instanceofInstance, [ - module.local_get(tempIndex, sizeTypeRef), - module.i32(expectedType.classReference!.id) - ], expression) + module.call(this.prepareInstanceOf(expectedType.classReference!), [ + module.local_get(tempIndex, sizeTypeRef) + ], TypeRef.I32) ); - if (this.options.pedantic) { - this.pedantic( - DiagnosticCode.Expression_compiles_to_a_dynamic_check_at_runtime, - expression.range - ); - } - return ret; } else { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, @@ -7630,16 +7630,10 @@ export class Compiler extends DiagnosticEmitter { // downcast - check dynamically } else if (expectedType.isAssignableTo(actualType)) { - let program = this.program; if (!(actualType.isUnmanaged || expectedType.isUnmanaged)) { - // FIXME: the temp local and the if can be removed here once flows - // perform null checking, which would error earlier when checking - // uninitialized (thus zero) `let a: A` to be an instance of something. let temp = flow.getTempLocal(actualType); let tempIndex = temp.index; - let instanceofInstance = assert(program.instanceofInstance); - this.compileFunction(instanceofInstance); - let ret = module.if( + return module.if( module.unary( sizeTypeRef == TypeRef.I64 ? UnaryOp.EqzI64 @@ -7647,12 +7641,10 @@ export class Compiler extends DiagnosticEmitter { module.local_tee(tempIndex, expr, actualType.isManaged), ), module.i32(0), - this.makeCallDirect(instanceofInstance, [ - module.local_get(tempIndex, sizeTypeRef), - module.i32(expectedType.classReference!.id) - ], expression) + module.call(this.prepareInstanceOf(expectedType.classReference!), [ + module.local_get(tempIndex, sizeTypeRef) + ], TypeRef.I32) ); - return ret; } else { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, @@ -7666,6 +7658,114 @@ export class Compiler extends DiagnosticEmitter { return module.maybeDropCondition(expr, module.i32(0)); } + /** Prepares the instanceof helper for the given class or interface instance. */ + private prepareInstanceOf(instance: Class): string { + let name = `~instanceof|${instance.internalName}`; + let pending = this.pendingInstanceOf; + if (pending.has(instance)) return assert(pending.get(instance)); + pending.set(instance, name); + let module = this.module; + module.addFunction(name, this.options.sizeTypeRef, TypeRef.I32, null, + module.unreachable() + ); + return name; + } + + /** Finalizes the instanceof helper of the given class or interface instance. */ + private finalizeInstanceOf( + /** Class to finalize the helper for. */ + instance: Class, + /** Name of the helper function. */ + name: string + ): void { + let program = this.program; + let module = this.module; + let sizeType = this.options.sizeTypeRef; + let stmts = new Array(); + let pending = this.pendingInstanceOf; + // (block $is_instance + // (br_if $is_instance (i32.eq (i32.load(...) (ID))) + // ... + // (br_if $is_instance (call $~instanceof|X (local.get $0))) + // ... + // (return (i32.const 0)) + // ) + // (i32.const 1) + stmts.push( + module.br("is_instance", + module.binary(BinaryOp.EqI32, + module.load(4, false, + module.binary( + sizeType == TypeRef.I64 + ? BinaryOp.SubI64 + : BinaryOp.SubI32, + module.local_get(0, sizeType), + module.i32( + program.totalOverhead - program.OBJECTInstance.offsetof("rtId") + ) + ), + TypeRef.I32 + ), + module.i32(instance.id) + ) + ) + ); + let extendees = instance.extendees; + if (extendees) { + for (let _values = Set_values(extendees), i = 0, k = _values.length; i < k; ++i) { + let extendee = _values[i]; + let extendeeName: string; + if (pending.has(extendee)) { + extendeeName = assert(pending.get(extendee)); + } else { + extendeeName = this.prepareInstanceOf(extendee); + pending.set(extendee, extendeeName); + this.finalizeInstanceOf(extendee, extendeeName); + } + stmts.push( + module.br("is_instance", + module.call(extendeeName, [ + module.local_get(0, sizeType) + ], TypeRef.I32) + ) + ); + } + } + let implementers = instance.implementers; + if (implementers) { + for (let _values = Set_values(implementers), i = 0, k = _values.length; i < k; ++i) { + let implementer = _values[i]; + let implementerName: string; + if (pending.has(implementer)) { + implementerName = assert(pending.get(implementer)); + } else { + implementerName = this.prepareInstanceOf(implementer); + pending.set(implementer, implementerName); + this.finalizeInstanceOf(implementer, implementerName); + } + stmts.push( + module.br("is_instance", + module.call(implementerName, [ + module.local_get(0, sizeType) + ], TypeRef.I32) + ) + ); + } + } + stmts.push( + module.return( + module.i32(0) + ) + ); + stmts[0] = module.block("is_instance", stmts, TypeRef.None); + stmts.length = 1; + stmts.push( + module.i32(1) + ); + module.removeFunction(name); + module.addFunction(name, sizeType, TypeRef.I32, [ TypeRef.I32 ], module.block(null, stmts, TypeRef.I32)); + } + private makeInstanceofClass(expression: InstanceOfExpression, prototype: ClassPrototype): ExpressionRef { let module = this.module; let expr = this.compileExpression(expression.expression, Type.auto); @@ -7698,8 +7798,22 @@ export class Compiler extends DiagnosticEmitter { // dynamic check against all possible concrete ids } else if (prototype.extends(classReference.prototype)) { - this.pendingClassInstanceOf.add(prototype); - return module.call(`${prototype.internalName}~instanceof`, [ expr ], TypeRef.I32); + let flow = this.currentFlow; + let temp = flow.getTempLocal(actualType); + let tempIndex = temp.index; + // !(t = expr) ? 0 : anyinstanceof(t) + return module.if( + module.unary( + sizeTypeRef == TypeRef.I64 + ? UnaryOp.EqzI64 + : UnaryOp.EqzI32, + module.local_tee(tempIndex, expr, actualType.isManaged), + ), + module.i32(0), + module.call(this.prepareAnyInstanceOf(prototype), [ + module.local_get(tempIndex, sizeTypeRef) + ], TypeRef.I32) + ); } } @@ -7707,6 +7821,67 @@ export class Compiler extends DiagnosticEmitter { return module.maybeDropCondition(expr, module.i32(0)); } + /** Prepares the instanceof helper for the given class or interface prototype. */ + private prepareAnyInstanceOf(prototype: ClassPrototype): string { + let name = `~anyinstanceof|${prototype.internalName}`; + let pending = this.pendingInstanceOf; + if (pending.has(prototype)) return assert(pending.get(prototype)); + pending.set(prototype, name); + let module = this.module; + module.addFunction(name, this.options.sizeTypeRef, TypeRef.I32, null, + module.unreachable() + ); + return name; + } + + /** Finalizes the instanceof helper of the given class prototype. */ + private finalizeAnyInstanceOf(prototype: ClassPrototype, name: string): void { + let module = this.module; + let sizeType = this.options.sizeTypeRef; + let stmts = new Array(); + let pending = this.pendingInstanceOf; + let instances = prototype.instances; + // (block $is_instance + // ... + // (br_if $is_instance (call $~instanceof|X (local.get $0))) + // ... + // (return (i32.const 0)) + // ) + // (i32.const 1) + if (instances) { + for (let _values = Map_values(instances), i = 0, k = _values.length; i < k; ++i) { + let instance = _values[i]; + let instanceName: string; + if (pending.has(instance)) { + instanceName = assert(pending.get(instance)); + } else { + instanceName = this.prepareInstanceOf(instance); + pending.set(instance, instanceName); + this.finalizeInstanceOf(instance, instanceName); + } + stmts.push( + module.br("is_instance", + module.call(instanceName, [ + module.local_get(0, sizeType) + ], TypeRef.I32) + ) + ); + } + } + stmts.push( + module.return( + module.i32(0) + ) + ); + stmts[0] = module.block("is_instance", stmts, TypeRef.None); + stmts.length = 1; + stmts.push( + module.i32(1) + ); + module.removeFunction(name); + module.addFunction(name, sizeType, TypeRef.I32, null, module.block(null, stmts, TypeRef.I32)); + } + private compileLiteralExpression( expression: LiteralExpression, contextualType: Type, @@ -10238,37 +10413,38 @@ export class Compiler extends DiagnosticEmitter { let flow = this.currentFlow; let temp = flow.getTempLocal(type); let tempIndex = temp.index; - let instanceofInstance = this.program.instanceofInstance; - assert(this.compileFunction(instanceofInstance)); let staticAbortCallExpr = this.makeStaticAbort( - this.ensureStaticString("unexpected downcast"), + this.ensureStaticString("invalid downcast"), reportNode ); // TODO: throw if (!toType.isNullableReference || flow.isNonnull(expr, type)) { // Simplify if the value cannot be `null`. If toType is non-nullable, a // null-check would have been emitted separately so is not necessary here. + // instanceof(t = expr) ? t : abort() expr = module.if( - module.call(instanceofInstance.internalName, [ - module.local_tee(tempIndex, expr, type.isManaged), - module.i32(toType.classReference!.id) + module.call(this.prepareInstanceOf(toType.classReference!), [ + module.local_tee(tempIndex, expr, type.isManaged) ], TypeRef.I32), module.local_get(tempIndex, type.toRef()), staticAbortCallExpr ); } else { + // !(t = expr) ? 0 : instanceof(t) ? t : abort() expr = module.if( - module.local_tee(tempIndex, expr, type.isManaged), + module.unary( + UnaryOp.EqzI32, + module.local_tee(tempIndex, expr, type.isManaged) + ), + module.usize(0), module.if( - module.call(instanceofInstance.internalName, [ + module.call(this.prepareInstanceOf(toType.classReference!), [ module.local_get(tempIndex, type.toRef()), - module.i32(toType.classReference!.id) ], TypeRef.I32), module.local_get(tempIndex, type.toRef()), staticAbortCallExpr - ), - module.usize(0) + ) ); } this.currentType = toType; diff --git a/tests/compiler/instanceof-class.debug.wat b/tests/compiler/instanceof-class.debug.wat index 1292da3ce8..cd2f21f3d0 100644 --- a/tests/compiler/instanceof-class.debug.wat +++ b/tests/compiler/instanceof-class.debug.wat @@ -2196,6 +2196,15 @@ local.get $ptr ) (func $start:instanceof-class (type $none_=>_none) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 memory.size $0 i32.const 16 i32.shl @@ -2228,8 +2237,18 @@ global.set $instanceof-class/b i32.const 1 drop + global.get $~lib/memory/__stack_pointer global.get $instanceof-class/b - call $instanceof-class/Child~instanceof + local.tee $0 + i32.store $0 + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + call $~anyinstanceof|instanceof-class/Child + end i32.eqz if i32.const 0 @@ -2242,75 +2261,53 @@ i32.const 0 i32.eqz drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) - (local $id i32) - (local $rttiBase i32) - local.get $ptr - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtId - local.set $id - global.get $~lib/rt/__rtti_base - local.set $rttiBase - local.get $id - local.get $rttiBase - i32.load $0 - i32.le_u - if - loop $do-loop|0 - local.get $id - local.get $classId - i32.eq - if - i32.const 1 - return - end - local.get $rttiBase - i32.const 4 - i32.add - local.get $id - i32.const 8 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:base - local.tee $id - br_if $do-loop|0 - end - end - i32.const 0 - ) - (func $instanceof-class/Child~instanceof (type $i32_=>_i32) (param $0 i32) (result i32) - local.get $0 - i32.eqz - if + (func $~instanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.eq + br_if $is_instance i32.const 0 return end - local.get $0 - i32.const 3 - call $~lib/rt/__instanceof - if - i32.const 1 + i32.const 1 + ) + (func $~instanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 6 + i32.eq + br_if $is_instance + i32.const 0 return end - local.get $0 - i32.const 6 - call $~lib/rt/__instanceof - if - i32.const 1 + i32.const 1 + ) + (func $~anyinstanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) + block $is_instance + local.get $0 + call $~instanceof|instanceof-class/Child + br_if $is_instance + local.get $0 + call $~instanceof|instanceof-class/Child + br_if $is_instance + i32.const 0 return end - i32.const 0 - return + i32.const 1 ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/instanceof-class.release.wat b/tests/compiler/instanceof-class.release.wat index d3069d5d78..3c8448607c 100644 --- a/tests/compiler/instanceof-class.release.wat +++ b/tests/compiler/instanceof-class.release.wat @@ -1241,235 +1241,6 @@ memory.fill $0 local.get $0 ) - (func $start:instanceof-class (type $none_=>_none) - (local $0 i32) - (local $1 i32) - memory.size $0 - i32.const 16 - i32.shl - i32.const 34332 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $instanceof-class/a - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $instanceof-class/b - block $__inlined_func$instanceof-class/Child~instanceof (result i32) - i32.const 0 - global.get $instanceof-class/b - local.tee $1 - i32.eqz - br_if $__inlined_func$instanceof-class/Child~instanceof - drop - i32.const 1 - block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|0 - i32.const 1 - local.get $0 - i32.const 3 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|0 - end - end - i32.const 0 - end - br_if $__inlined_func$instanceof-class/Child~instanceof - drop - i32.const 1 - block $__inlined_func$~lib/rt/__instanceof9 (result i32) - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|012 - i32.const 1 - local.get $0 - i32.const 6 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof9 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|012 - end - end - i32.const 0 - end - br_if $__inlined_func$instanceof-class/Child~instanceof - drop - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - return - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $invalid block $instanceof-class/Child @@ -1509,7 +1280,208 @@ unreachable ) (func $~start (type $none_=>_none) - call $start:instanceof-class + (local $0 i32) + (local $1 i32) + block $__inlined_func$start:instanceof-class + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1564 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + memory.size $0 + i32.const 16 + i32.shl + i32.const 34332 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store $0 + i32.const 1176 + i32.const 1168 + i32.store $0 + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store $0 + i32.const 1208 + i32.const 1200 + i32.store $0 + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store $0 + i32.const 1352 + i32.const 1344 + i32.store $0 + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1564 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1564 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $instanceof-class/a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1564 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1564 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $instanceof-class/b + global.get $~lib/memory/__stack_pointer + global.get $instanceof-class/b + local.tee $0 + i32.store $0 + local.get $0 + if (result i32) + block $__inlined_func$~anyinstanceof|instanceof-class/Child (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.eq + br_if $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 6 + i32.eq + br_if $is_instance + i32.const 0 + br $__inlined_func$~anyinstanceof|instanceof-class/Child + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:instanceof-class + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index c9a2f5256f..f1e2704a86 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -38,7 +38,7 @@ (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00") + (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 608) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) @@ -2222,51 +2222,6 @@ call $managed-cast/Animal#tame end ) - (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) - (local $id i32) - (local $rttiBase i32) - local.get $ptr - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtId - local.set $id - global.get $~lib/rt/__rtti_base - local.set $rttiBase - local.get $id - local.get $rttiBase - i32.load $0 - i32.le_u - if - loop $do-loop|0 - local.get $id - local.get $classId - i32.eq - if - i32.const 1 - return - end - local.get $rttiBase - i32.const 4 - i32.add - local.get $id - i32.const 8 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:base - local.tee $id - br_if $do-loop|0 - end - end - i32.const 0 - ) (func $managed-cast/Cat#meow (type $i32_=>_none) (param $this i32) nop ) @@ -2284,8 +2239,7 @@ global.get $~lib/memory/__stack_pointer local.get $animal local.tee $1 - i32.const 3 - call $~lib/rt/__instanceof + call $~instanceof|managed-cast/Cat if (result i32) local.get $1 else @@ -2322,10 +2276,12 @@ global.get $~lib/memory/__stack_pointer local.get $animal local.tee $1 + i32.eqz if (result i32) + i32.const 0 + else local.get $1 - i32.const 3 - call $~lib/rt/__instanceof + call $~instanceof|managed-cast/Cat if (result i32) local.get $1 else @@ -2336,8 +2292,6 @@ call $~lib/builtins/abort unreachable end - else - i32.const 0 end local.tee $maybeCat i32.store $0 @@ -2403,6 +2357,21 @@ i32.const 0 drop ) + (func $~instanceof|managed-cast/Cat (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) i32.const 224 @@ -2514,8 +2483,7 @@ i32.store $0 local.get $animal local.tee $1 - i32.const 3 - call $~lib/rt/__instanceof + call $~instanceof|managed-cast/Cat if (result i32) local.get $1 else @@ -2565,8 +2533,7 @@ local.tee $2 i32.store $0 offset=4 local.get $2 - i32.const 3 - call $~lib/rt/__instanceof + call $~instanceof|managed-cast/Cat if (result i32) local.get $2 else diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 6ed4c818bd..3632fea5af 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -34,7 +34,7 @@ (data (i32.const 1500) "<") (data (i32.const 1512) "\01\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s") (data (i32.const 1564) "<") - (data (i32.const 1576) "\01\00\00\00&\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") + (data (i32.const 1576) "\01\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") (data (i32.const 1632) "\05\00\00\00 \00\00\00\00\00\00\00 ") (data (i32.const 1660) " \00\00\00\04\00\00\00 ") (export "memory" (memory $0)) @@ -1266,7 +1266,6 @@ (func $~start (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1376,36 +1375,12 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $1 - i32.const 1632 - i32.load $0 - i32.le_u - if - loop $do-loop|0 - i32.const 1 - local.get $1 - i32.const 3 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof - drop - local.get $1 - i32.const 3 - i32.shl - i32.const 1636 - i32.add - i32.load $0 offset=4 - local.tee $1 - br_if $do-loop|0 - end - end - i32.const 0 - end - i32.eqz + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.ne if i32.const 1584 i32.const 1520 @@ -1439,7 +1414,7 @@ local.tee $1 i64.const 0 i64.store $0 - block $__inlined_func$~lib/rt/__instanceof0 (result i32) + block $__inlined_func$~instanceof|managed-cast/Cat15 (result i32) local.get $0 i32.eqz if @@ -1453,33 +1428,16 @@ local.get $1 local.get $0 i32.store $0 offset=4 + i32.const 0 local.get $0 - i32.const 20 + i32.const 8 i32.sub - i32.load $0 offset=12 - local.tee $1 - i32.const 1632 i32.load $0 - i32.le_u - if - loop $do-loop|03 - i32.const 1 - local.get $1 - i32.const 3 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof0 - drop - local.get $1 - i32.const 3 - i32.shl - i32.const 1636 - i32.add - i32.load $0 offset=4 - local.tee $1 - br_if $do-loop|03 - end - end - i32.const 0 + i32.const 3 + i32.ne + br_if $__inlined_func$~instanceof|managed-cast/Cat15 + drop + i32.const 1 end i32.eqz if @@ -1512,39 +1470,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store $0 - block $__inlined_func$~lib/rt/__instanceof6 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $1 - i32.const 1632 - i32.load $0 - i32.le_u - if - loop $do-loop|09 - i32.const 1 - local.get $1 - i32.const 3 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof6 - drop - local.get $1 - i32.const 3 - i32.shl - i32.const 1636 - i32.add - i32.load $0 offset=4 - local.tee $1 - br_if $do-loop|09 - end - end - i32.const 0 - end - i32.eqz + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.ne if i32.const 1584 i32.const 1520 @@ -1553,7 +1487,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer @@ -1574,41 +1508,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store $0 local.get $0 if - block $__inlined_func$~lib/rt/__instanceof13 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $1 - i32.const 1632 - i32.load $0 - i32.le_u - if - loop $do-loop|016 - i32.const 1 - local.get $1 - i32.const 3 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof13 - drop - local.get $1 - i32.const 3 - i32.shl - i32.const 1636 - i32.add - i32.load $0 offset=4 - local.tee $1 - br_if $do-loop|016 - end - end - i32.const 0 - end - i32.eqz + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 3 + i32.ne if i32.const 1584 i32.const 1520 @@ -1621,7 +1531,7 @@ i32.const 0 local.set $0 end - local.get $2 + local.get $1 local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/instanceof.debug.wat b/tests/compiler/rt/instanceof.debug.wat index ae3bcfb3fb..2cd5fad02b 100644 --- a/tests/compiler/rt/instanceof.debug.wat +++ b/tests/compiler/rt/instanceof.debug.wat @@ -2203,51 +2203,6 @@ memory.fill $0 local.get $ptr ) - (func $~lib/rt/common/OBJECT#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:base (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/__instanceof (type $i32_i32_=>_i32) (param $ptr i32) (param $classId i32) (result i32) - (local $id i32) - (local $rttiBase i32) - local.get $ptr - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtId - local.set $id - global.get $~lib/rt/__rtti_base - local.set $rttiBase - local.get $id - local.get $rttiBase - i32.load $0 - i32.le_u - if - loop $do-loop|0 - local.get $id - local.get $classId - i32.eq - if - i32.const 1 - return - end - local.get $rttiBase - i32.const 4 - i32.add - local.get $id - i32.const 8 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:base - local.tee $id - br_if $do-loop|0 - end - end - i32.const 0 - ) (func $start:rt/instanceof (type $none_=>_none) (local $0 i32) (local $1 i32) @@ -2314,8 +2269,7 @@ i32.const 0 else local.get $0 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz i32.eqz @@ -2337,8 +2291,7 @@ i32.const 0 else local.get $1 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2362,8 +2315,7 @@ i32.const 0 else local.get $2 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz if @@ -2384,8 +2336,7 @@ i32.const 0 else local.get $3 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2409,8 +2360,7 @@ i32.const 0 else local.get $4 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz if @@ -2431,8 +2381,7 @@ i32.const 0 else local.get $5 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz if @@ -2474,8 +2423,7 @@ i32.const 0 else local.get $6 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz i32.eqz @@ -2497,8 +2445,7 @@ i32.const 0 else local.get $7 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2532,8 +2479,7 @@ i32.const 0 else local.get $8 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz if @@ -2554,8 +2500,7 @@ i32.const 0 else local.get $9 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2589,8 +2534,7 @@ i32.const 0 else local.get $10 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz if @@ -2611,8 +2555,7 @@ i32.const 0 else local.get $11 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz if @@ -2646,8 +2589,7 @@ i32.const 0 else local.get $12 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz i32.eqz @@ -2669,8 +2611,7 @@ i32.const 0 else local.get $13 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2705,8 +2646,7 @@ i32.const 0 else local.get $14 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz i32.eqz @@ -2728,8 +2668,7 @@ i32.const 0 else local.get $15 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2764,8 +2703,7 @@ i32.const 0 else local.get $16 - i32.const 4 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/Cat end i32.eqz i32.eqz @@ -2787,8 +2725,7 @@ i32.const 0 else local.get $17 - i32.const 5 - call $~lib/rt/__instanceof + call $~instanceof|rt/instanceof/BlackCat end i32.eqz i32.eqz @@ -2805,6 +2742,39 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~instanceof|rt/instanceof/Cat (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance + local.get $0 + call $~instanceof|rt/instanceof/BlackCat + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) + (func $~instanceof|rt/instanceof/BlackCat (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) global.get $rt/instanceof/animal diff --git a/tests/compiler/rt/instanceof.release.wat b/tests/compiler/rt/instanceof.release.wat index 4cf45b0b2a..b9d83a887c 100644 --- a/tests/compiler/rt/instanceof.release.wat +++ b/tests/compiler/rt/instanceof.release.wat @@ -1337,34 +1337,26 @@ i32.store $0 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|0 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|0 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1383,35 +1375,12 @@ i32.store $0 offset=4 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof6 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|09 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof6 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|09 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end @@ -1429,34 +1398,26 @@ i32.store $0 offset=8 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof11 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|014 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof11 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|014 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat8 (result i32) + block $is_instance9 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance9 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance9 + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat8 end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1476,35 +1437,12 @@ i32.store $0 offset=12 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof16 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|019 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof16 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|019 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end @@ -1522,34 +1460,26 @@ i32.store $0 offset=16 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof21 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|024 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof21 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|024 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat12 (result i32) + block $is_instance13 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance13 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance13 + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat12 end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1569,35 +1499,12 @@ i32.store $0 offset=20 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof26 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|029 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof26 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|029 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end @@ -1634,34 +1541,26 @@ i32.store $0 offset=24 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof31 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|034 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof31 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|034 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat16 (result i32) + block $is_instance17 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance17 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance17 + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat16 end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1680,35 +1579,12 @@ i32.store $0 offset=28 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof36 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|039 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof36 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|039 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end @@ -1736,34 +1612,26 @@ i32.store $0 offset=32 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof41 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|044 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof41 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|044 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat20 (result i32) + block $is_instance21 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance21 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance21 + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat20 end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1783,35 +1651,12 @@ i32.store $0 offset=36 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof46 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|049 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof46 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|049 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end @@ -1839,34 +1684,26 @@ i32.store $0 offset=40 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof51 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|054 - i32.const 1 - local.get $0 - i32.const 4 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof51 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|054 - end + block $__inlined_func$~instanceof|rt/instanceof/Cat26 (result i32) + block $is_instance27 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 4 + i32.eq + br_if $is_instance27 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + br_if $is_instance27 + i32.const 0 + br $__inlined_func$~instanceof|rt/instanceof/Cat26 end - i32.const 0 + i32.const 1 end else i32.const 0 @@ -1886,35 +1723,12 @@ i32.store $0 offset=44 local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof56 (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=12 - local.tee $0 - i32.const 1504 - i32.load $0 - i32.le_u - if - loop $do-loop|059 - i32.const 1 - local.get $0 - i32.const 5 - i32.eq - br_if $__inlined_func$~lib/rt/__instanceof56 - drop - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 offset=4 - local.tee $0 - br_if $do-loop|059 - end - end - i32.const 0 - end + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq else i32.const 0 end From 49118375712becc76a5d498fb2e3ca4e8f3ba0eb Mon Sep 17 00:00:00 2001 From: dcode Date: Sun, 6 Nov 2022 23:32:35 +0100 Subject: [PATCH 13/13] optimize, merge instanceof tests --- src/common.ts | 1 - src/compiler.ts | 130 +- src/program.ts | 29 +- tests/compiler/instanceof-class.debug.wat | 2518 -------------- tests/compiler/instanceof-class.json | 4 - tests/compiler/instanceof-class.release.wat | 1633 --------- tests/compiler/instanceof-class.ts | 18 - tests/compiler/instanceof.debug.wat | 3468 ++++++++++++++++++- tests/compiler/instanceof.release.wat | 2259 +++++++++++- tests/compiler/instanceof.ts | 83 +- tests/compiler/managed-cast.debug.wat | 2 + tests/compiler/rt/instanceof.debug.wat | 3008 ---------------- tests/compiler/rt/instanceof.json | 5 - tests/compiler/rt/instanceof.release.wat | 2069 ----------- tests/compiler/rt/instanceof.ts | 51 - 15 files changed, 5812 insertions(+), 9466 deletions(-) delete mode 100644 tests/compiler/instanceof-class.debug.wat delete mode 100644 tests/compiler/instanceof-class.json delete mode 100644 tests/compiler/instanceof-class.release.wat delete mode 100644 tests/compiler/instanceof-class.ts delete mode 100644 tests/compiler/rt/instanceof.debug.wat delete mode 100644 tests/compiler/rt/instanceof.json delete mode 100644 tests/compiler/rt/instanceof.release.wat delete mode 100644 tests/compiler/rt/instanceof.ts diff --git a/src/common.ts b/src/common.ts index bb9244f468..9ad0a01e14 100644 --- a/src/common.ts +++ b/src/common.ts @@ -257,7 +257,6 @@ export namespace CommonNames { export const link = "__link"; export const collect = "__collect"; export const typeinfo = "__typeinfo"; - export const instanceof_ = "__instanceof"; export const visit = "__visit"; export const newBuffer = "__newBuffer"; export const newArray = "__newArray"; diff --git a/src/compiler.ts b/src/compiler.ts index c7a63b7461..710b778736 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -7682,75 +7682,42 @@ export class Compiler extends DiagnosticEmitter { let module = this.module; let sizeType = this.options.sizeTypeRef; let stmts = new Array(); - let pending = this.pendingInstanceOf; // (block $is_instance - // (br_if $is_instance (i32.eq (i32.load(...) (ID))) - // ... - // (br_if $is_instance (call $~instanceof|X (local.get $0))) + // (local.set $1 (i32.load (...))) ;; class id + // (br_if $is_instance (i32.eq (local.get $1) (ID))) // ... // (return (i32.const 0)) // ) // (i32.const 1) stmts.push( - module.br("is_instance", - module.binary(BinaryOp.EqI32, - module.load(4, false, - module.binary( - sizeType == TypeRef.I64 - ? BinaryOp.SubI64 - : BinaryOp.SubI32, - module.local_get(0, sizeType), - module.i32( - program.totalOverhead - program.OBJECTInstance.offsetof("rtId") - ) - ), - TypeRef.I32 + module.local_set(1, + module.load(4, false, + module.binary( + sizeType == TypeRef.I64 + ? BinaryOp.SubI64 + : BinaryOp.SubI32, + module.local_get(0, sizeType), + module.i32( + program.totalOverhead - program.OBJECTInstance.offsetof("rtId") + ) ), - module.i32(instance.id) - ) + TypeRef.I32 + ), false // managedness is irrelevant here, isn't interrupted ) ); - let extendees = instance.extendees; - if (extendees) { - for (let _values = Set_values(extendees), i = 0, k = _values.length; i < k; ++i) { - let extendee = _values[i]; - let extendeeName: string; - if (pending.has(extendee)) { - extendeeName = assert(pending.get(extendee)); - } else { - extendeeName = this.prepareInstanceOf(extendee); - pending.set(extendee, extendeeName); - this.finalizeInstanceOf(extendee, extendeeName); - } - stmts.push( - module.br("is_instance", - module.call(extendeeName, [ - module.local_get(0, sizeType) - ], TypeRef.I32) - ) - ); - } - } - let implementers = instance.implementers; - if (implementers) { - for (let _values = Set_values(implementers), i = 0, k = _values.length; i < k; ++i) { - let implementer = _values[i]; - let implementerName: string; - if (pending.has(implementer)) { - implementerName = assert(pending.get(implementer)); - } else { - implementerName = this.prepareInstanceOf(implementer); - pending.set(implementer, implementerName); - this.finalizeInstanceOf(implementer, implementerName); - } - stmts.push( - module.br("is_instance", - module.call(implementerName, [ - module.local_get(0, sizeType) - ], TypeRef.I32) + let allInstances = new Set(); + allInstances.add(instance); + instance.getAllExtendeesAndImplementers(allInstances); + for (let _values = Set_values(allInstances), i = 0, k = _values.length; i < k; ++i) { + let instance = _values[i]; + stmts.push( + module.br("is_instance", + module.binary(BinaryOp.EqI32, + module.local_get(1, TypeRef.I32), + module.i32(instance.id) ) - ); - } + ) + ); } stmts.push( module.return( @@ -7839,31 +7806,46 @@ export class Compiler extends DiagnosticEmitter { let module = this.module; let sizeType = this.options.sizeTypeRef; let stmts = new Array(); - let pending = this.pendingInstanceOf; let instances = prototype.instances; // (block $is_instance - // ... - // (br_if $is_instance (call $~instanceof|X (local.get $0))) + // (local.set $1 (i32.load(...))) + // (br_if $is_instance (i32.eq (local.get $1) (ID)) // ... // (return (i32.const 0)) // ) // (i32.const 1) if (instances) { + let program = this.program; + stmts.push( + module.local_set(1, + module.load(4, false, + module.binary( + sizeType == TypeRef.I64 + ? BinaryOp.SubI64 + : BinaryOp.SubI32, + module.local_get(0, sizeType), + module.i32( + program.totalOverhead - program.OBJECTInstance.offsetof("rtId") + ) + ), + TypeRef.I32 + ), false // managedness is irrelevant here, isn't interrupted + ) + ); + let allInstances = new Set(); for (let _values = Map_values(instances), i = 0, k = _values.length; i < k; ++i) { let instance = _values[i]; - let instanceName: string; - if (pending.has(instance)) { - instanceName = assert(pending.get(instance)); - } else { - instanceName = this.prepareInstanceOf(instance); - pending.set(instance, instanceName); - this.finalizeInstanceOf(instance, instanceName); - } + allInstances.add(instance); + instance.getAllExtendeesAndImplementers(allInstances); + } + for (let _values = Set_values(allInstances), i = 0, k = _values.length; i < k; ++i) { + let instance = _values[i]; stmts.push( module.br("is_instance", - module.call(instanceName, [ - module.local_get(0, sizeType) - ], TypeRef.I32) + module.binary(BinaryOp.EqI32, + module.local_get(1, TypeRef.I32), + module.i32(instance.id) + ) ) ); } @@ -7879,7 +7861,7 @@ export class Compiler extends DiagnosticEmitter { module.i32(1) ); module.removeFunction(name); - module.addFunction(name, sizeType, TypeRef.I32, null, module.block(null, stmts, TypeRef.I32)); + module.addFunction(name, sizeType, TypeRef.I32, [ TypeRef.I32 ], module.block(null, stmts, TypeRef.I32)); } private compileLiteralExpression( diff --git a/src/program.ts b/src/program.ts index accd520b30..25137fdafc 100644 --- a/src/program.ts +++ b/src/program.ts @@ -737,14 +737,6 @@ export class Program extends DiagnosticEmitter { } private _typeinfoInstance: Function | null = null; - /** Gets the runtime `__instanceof(ptr: usize, superId: u32): bool` instance. */ - get instanceofInstance(): Function { - let cached = this._instanceofInstance; - if (!cached) this._instanceofInstance = cached = this.requireFunction(CommonNames.instanceof_); - return cached; - } - private _instanceofInstance: Function | null = null; - /** Gets the runtime `__newBuffer(size: usize, id: u32, data: usize = 0): usize` instance. */ get newBufferInstance(): Function { let cached = this._newBufferInstance; @@ -4718,6 +4710,27 @@ export class Class extends TypedElement { } return out; } + + /** Gets all extendees and implementers of this class. */ + getAllExtendeesAndImplementers(out: Set = new Set()): Set { + let extendees = this.extendees; + if (extendees) { + for (let _values = Set_values(extendees), i = 0, k = _values.length; i < k; ++i) { + let extendee = _values[i]; + out.add(extendee); + extendee.getAllExtendeesAndImplementers(out); + } + } + let implementers = this.implementers; + if (implementers) { + for (let _values = Set_values(implementers), i = 0, k = _values.length; i < k; ++i) { + let implementer = _values[i]; + out.add(implementer); + implementer.getAllExtendeesAndImplementers(out); + } + } + return out; + } } /** A yet unresolved interface. */ diff --git a/tests/compiler/instanceof-class.debug.wat b/tests/compiler/instanceof-class.debug.wat deleted file mode 100644 index cd2f21f3d0..0000000000 --- a/tests/compiler/instanceof-class.debug.wat +++ /dev/null @@ -1,2518 +0,0 @@ -(module - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) - (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $instanceof-class/a (mut i32) (i32.const 0)) - (global $instanceof-class/b (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 480)) - (global $~lib/memory/__data_end i32 (i32.const 540)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33308)) - (global $~lib/memory/__heap_base i32 (i32.const 33308)) - (memory $0 1) - (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00-\00c\00l\00a\00s\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 480) "\07\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\05\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store $0 offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store $0 offset=8 - ) - (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) - (local $pn i32) - (local $iter i32) - (local $3 i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 159 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (type $i32_=>_none) (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 127 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 131 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load $0 - i32.gt_u - if - i32.const 224 - i32.const 288 - i32.const 22 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 8 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - ) - (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 96 - i32.const 147 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (type $i32_i32_=>_none) (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) - (local $ptr i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - local.set $2 - local.get $2 - if - local.get $ptr - i32.load $0 - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store $0 - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store $0 - ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store $0 offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store $0 offset=96 - local.get $next - i32.eqz - if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store $0 offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store $0 - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store $0 offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_i32) (param $root i32) (param $start i32) (param $end i32) (result i32) - (local $root|3 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|9 i32) - (local $tail|10 i32) - i32.const 1 - drop - local.get $start - local.get $end - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 377 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 - local.set $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 384 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - nop - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 397 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|9 - local.get $tail - local.set $tail|10 - local.get $root|9 - local.get $tail|10 - i32.store $0 offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/initialize (type $none_=>_none) - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) - (local $slMap i32) - (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) - (local $head i32) - (local $memStart i32) - i32.const 0 - drop - global.get $~lib/memory/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $rootOffset - memory.size $0 - local.set $pagesBefore - local.get $rootOffset - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow $0 - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store $0 offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $root - local.set $root|8 - local.get $fl - local.set $fl|9 - i32.const 0 - local.set $slMap - local.get $root|8 - local.get $fl|9 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store $0 offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - local.set $12 - local.get $12 - if - local.get $root - local.set $root|13 - local.get $fl - local.set $fl|14 - local.get $sl - local.set $sl|15 - i32.const 0 - local.set $head - local.get $root|13 - local.get $fl|14 - i32.const 4 - i32.shl - local.get $sl|15 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store $0 offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (type $i32_=>_i32) (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - ) - (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (type $i32_=>_none) (param $ptr i32) - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (type $i32_=>_none) (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $3 i32) - (local $4 i32) - (local $from i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $3 - local.get $3 - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.eq - if - i32.const 0 - call $~lib/rt/itcms/visitStack - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $4 - local.get $4 - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - call $~lib/rt/itcms/free - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:nextWithColor - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:prev - i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 - end - i32.const 0 - ) - (func $~lib/rt/itcms/interrupt (type $none_=>_none) - (local $budget i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i32.const 1024 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.mul - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - ) - (func $~lib/rt/tlsf/computeSize (type $i32_=>_i32) (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - end - ) - (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32 - i32.const 368 - i32.const 458 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - ) - (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - local.set $requestSize - i32.const 31 - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 330 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 343 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - end - local.get $head - ) - (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 536870910 - i32.lt_u - if - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $size - end - memory.size $0 - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - 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 $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size $0 - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (type $i32_i32_i32_=>_none) (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 357 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - ) - (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store $0 offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store $0 offset=16 - ) - (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32 - i32.const 96 - i32.const 260 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt - end - i32.const 16 - local.get $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - global.get $~lib/rt/itcms/fromSpace - global.get $~lib/rt/itcms/white - call $~lib/rt/itcms/Object#linkTo - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill $0 - local.get $ptr - ) - (func $start:instanceof-class (type $none_=>_none) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 144 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 176 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 320 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $instanceof-class/Child#constructor - global.set $instanceof-class/a - i32.const 1 - drop - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - i32.const 0 - call $instanceof-class/Child#constructor - global.set $instanceof-class/b - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - global.get $instanceof-class/b - local.tee $0 - i32.store $0 - local.get $0 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $0 - call $~anyinstanceof|instanceof-class/Child - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.eqz - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~instanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 3 - i32.eq - br_if $is_instance - i32.const 0 - return - end - i32.const 1 - ) - (func $~instanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 6 - i32.eq - br_if $is_instance - i32.const 0 - return - end - i32.const 1 - ) - (func $~anyinstanceof|instanceof-class/Child (type $i32_=>_i32) (param $0 i32) (result i32) - block $is_instance - local.get $0 - call $~instanceof|instanceof-class/Child - br_if $is_instance - local.get $0 - call $~instanceof|instanceof-class/Child - br_if $is_instance - i32.const 0 - return - end - i32.const 1 - ) - (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) - (local $1 i32) - global.get $instanceof-class/a - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof-class/b - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/rt/__visit_members (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - block $invalid - block $instanceof-class/Child - block $instanceof-class/Parent - block $instanceof-class/Parent - block $instanceof-class/Child - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof-class/Child $instanceof-class/Parent $instanceof-class/Parent $instanceof-class/Child $invalid - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - call $start:instanceof-class - ) - (func $~stack_check (type $none_=>_none) - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 33328 - i32.const 33376 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $instanceof-class/Parent#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $instanceof-class/Child#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - local.get $this - call $instanceof-class/Parent#constructor - local.tee $this - i32.store $0 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $instanceof-class/Parent#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $instanceof-class/Child#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - local.get $this - call $instanceof-class/Parent#constructor - local.tee $this - i32.store $0 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) -) diff --git a/tests/compiler/instanceof-class.json b/tests/compiler/instanceof-class.json deleted file mode 100644 index 1bdd02b1be..0000000000 --- a/tests/compiler/instanceof-class.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asc_flags": [ - ] -} diff --git a/tests/compiler/instanceof-class.release.wat b/tests/compiler/instanceof-class.release.wat deleted file mode 100644 index 3c8448607c..0000000000 --- a/tests/compiler/instanceof-class.release.wat +++ /dev/null @@ -1,1633 +0,0 @@ -(module - (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $instanceof-class/a (mut i32) (i32.const 0)) - (global $instanceof-class/b (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34332)) - (memory $0 1) - (data (i32.const 1036) "<") - (data (i32.const 1048) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1100) "<") - (data (i32.const 1112) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 1228) "<") - (data (i32.const 1240) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1292) ",") - (data (i32.const 1304) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1372) "<") - (data (i32.const 1384) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1436) "<") - (data (i32.const 1448) "\01\00\00\00&\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00-\00c\00l\00a\00s\00s\00.\00t\00s") - (data (i32.const 1504) "\07\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 1532) " \00\00\00\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\05") - (export "memory" (memory $0)) - (start $~start) - (func $~lib/rt/itcms/visitRoots (type $none_=>_none) - (local $0 i32) - (local $1 i32) - global.get $instanceof-class/a - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $instanceof-class/b - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - i32.const 1248 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1056 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 159 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load $0 - local.tee $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $3 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load $0 offset=8 - local.set $5 - local.get $1 - i32.load $0 offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store $0 offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store $0 offset=4 - end - local.get $1 - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - i32.eq - if - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store $0 offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 offset=4 - i32.const -2 - local.get $2 - i32.rotl - i32.and - local.set $2 - local.get $1 - local.get $2 - i32.store $0 offset=4 - local.get $2 - i32.eqz - if - local.get $0 - local.get $0 - i32.load $0 - i32.const -2 - local.get $3 - i32.rotl - i32.and - i32.store $0 - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load $0 - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load $0 - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store $0 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load $0 - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load $0 - local.tee $1 - i32.load $0 - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store $0 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store $0 - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store $0 - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $5 - local.get $2 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store $0 offset=4 - local.get $1 - local.get $3 - i32.store $0 offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store $0 offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store $0 offset=96 - local.get $0 - local.get $0 - i32.load $0 - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store $0 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load $0 offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $2 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 377 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load $0 offset=1568 - local.tee $4 - if - local.get $4 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 384 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $4 - i32.load $0 - local.set $3 - local.get $1 - i32.const 16 - i32.sub - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 397 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $2 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $3 - i32.const 2 - i32.and - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.const 1 - i32.or - i32.or - i32.store $0 - local.get $1 - i32.const 0 - i32.store $0 offset=4 - local.get $1 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $2 - i32.const 2 - i32.store $0 - local.get $0 - local.get $2 - i32.store $0 offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize (type $none_=>_none) - (local $0 i32) - (local $1 i32) - memory.size $0 - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow $0 - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34336 - i32.const 0 - i32.store $0 - i32.const 35904 - i32.const 0 - i32.store $0 - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34336 - i32.add - i32.const 0 - i32.store $0 offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34336 - i32.add - i32.const 0 - i32.store $0 offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 34336 - i32.const 35908 - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store $0 offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34332 - i32.lt_u - if - local.get $0 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store $0 offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load $0 offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34332 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34332 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load $0 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load $0 - i32.const 1 - i32.or - i32.store $0 - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store $0 offset=4 - local.get $0 - local.get $0 - i32.store $0 offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load $0 offset=4 - i32.const -2 - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - else - local.get $0 - i32.load $0 - i32.const -2 - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 343 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size $0 - local.tee $1 - i32.const 4 - local.get $2 - i32.load $0 offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - local.get $3 - i32.gt_s - select - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load $0 - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and - i32.store $0 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $1 - local.get $0 - i32.store $0 offset=12 - local.get $1 - i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load $0 offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $0 - ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $instanceof-class/Child - block $instanceof-class/Parent - block $instanceof-class/Parent - block $instanceof-class/Child - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof-class/Child $instanceof-class/Parent $instanceof-class/Parent $instanceof-class/Child $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - (local $0 i32) - (local $1 i32) - block $__inlined_func$start:instanceof-class - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34332 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $instanceof-class/a - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1564 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $instanceof-class/b - global.get $~lib/memory/__stack_pointer - global.get $instanceof-class/b - local.tee $0 - i32.store $0 - local.get $0 - if (result i32) - block $__inlined_func$~anyinstanceof|instanceof-class/Child (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 3 - i32.eq - br_if $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 6 - i32.eq - br_if $is_instance - i32.const 0 - br $__inlined_func$~anyinstanceof|instanceof-class/Child - end - i32.const 1 - end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:instanceof-class - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 147 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34332 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 127 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 131 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1504 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 22 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) -) diff --git a/tests/compiler/instanceof-class.ts b/tests/compiler/instanceof-class.ts deleted file mode 100644 index 7f85869576..0000000000 --- a/tests/compiler/instanceof-class.ts +++ /dev/null @@ -1,18 +0,0 @@ -class Parent { -} - -class Child extends Parent { -} - -class SomethingElse { -} - -var a: Child = new Child(); -assert(a instanceof Child); // static true -assert(a instanceof Parent); // static true -assert(!(a instanceof SomethingElse)); // static false - -var b: Parent = new Child(); -assert(b instanceof Parent); // static true -assert(b instanceof Child); // dynamic true (checks Child, Child) -assert(!(b instanceof SomethingElse)); // static false diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 851b69eaad..87a79dfe2c 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -1,8 +1,14 @@ (module (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $f64_=>_i32 (func_subtype (param f64) (result i32) func)) + (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $instanceof/a (mut i32) (i32.const 0)) (global $instanceof/b (mut i32) (i32.const 0)) @@ -11,11 +17,46 @@ (global $instanceof/f (mut f32) (f32.const 0)) (global $instanceof/F (mut f64) (f64.const 0)) (global $instanceof/an (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 60)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32828)) - (global $~lib/memory/__heap_base i32 (i32.const 32828)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) + (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $instanceof/child (mut i32) (i32.const 0)) + (global $instanceof/childAsParent (mut i32) (i32.const 0)) + (global $instanceof/animal (mut i32) (i32.const 0)) + (global $instanceof/cat (mut i32) (i32.const 0)) + (global $instanceof/blackcat (mut i32) (i32.const 0)) + (global $instanceof/nullableAnimal (mut i32) (i32.const 0)) + (global $instanceof/nullableCat (mut i32) (i32.const 0)) + (global $instanceof/nullableBlackcat (mut i32) (i32.const 0)) + (global $instanceof/nullAnimal (mut i32) (i32.const 0)) + (global $instanceof/nullCat (mut i32) (i32.const 0)) + (global $instanceof/nullBlackcat (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 464)) + (global $~lib/memory/__data_end i32 (i32.const 572)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33340)) + (global $~lib/memory/__heap_base i32 (i32.const 33340)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") + (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 464) "\r\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\n\00\00\00 \00\00\00\0b\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -44,7 +85,2406 @@ i32.const 0 return ) + (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store $0 offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store $0 offset=8 + ) + (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $space + local.get $space + call $~lib/rt/itcms/Object#set:prev + local.get $space + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + ) + (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + ) + (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) + (local $pn i32) + (local $iter i32) + (local $3 i32) + local.get $cookie + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.set $pn + local.get $pn + call $~lib/rt/itcms/Object#get:next + local.set $iter + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + local.set $3 + local.get $3 + if + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) + local.get $this + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $color + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) + local.get $this + local.get $obj + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + ) + (func $~lib/rt/itcms/Object#unlink (type $i32_=>_none) (param $this i32) + (local $next i32) + (local $prev i32) + local.get $this + call $~lib/rt/itcms/Object#get:next + local.set $next + local.get $next + i32.const 0 + i32.eq + if + i32.const 1 + drop + local.get $this + call $~lib/rt/itcms/Object#get:prev + i32.const 0 + i32.eq + if (result i32) + local.get $this + global.get $~lib/memory/__heap_base + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.set $prev + i32.const 1 + drop + local.get $prev + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $next + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $next + call $~lib/rt/itcms/Object#set:next + ) + (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) + (local $ptr i32) + global.get $~lib/rt/__rtti_base + local.set $ptr + local.get $id + local.get $ptr + i32.load $0 + i32.gt_u + if + i32.const 272 + i32.const 336 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 8 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) + (local $rtId i32) + local.get $this + call $~lib/rt/itcms/Object#get:rtId + local.set $rtId + local.get $rtId + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $rtId + call $~lib/rt/__typeinfo + i32.const 32 + i32.and + i32.const 0 + i32.ne + end + ) + (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) + (local $prev i32) + local.get $list + call $~lib/rt/itcms/Object#get:prev + local.set $prev + local.get $this + local.get $list + local.get $withColor + i32.or + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $this + local.get $prev + call $~lib/rt/itcms/Object#set:prev + local.get $prev + local.get $this + call $~lib/rt/itcms/Object#set:next + local.get $list + local.get $this + call $~lib/rt/itcms/Object#set:prev + ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $this i32) + (local $1 i32) + local.get $this + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $this + call $~lib/rt/itcms/Object#get:prev + local.tee $1 + i32.eqz + if (result i32) + i32.const 0 + i32.const 144 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + else + local.get $1 + end + global.set $~lib/rt/itcms/iter + end + local.get $this + call $~lib/rt/itcms/Object#unlink + local.get $this + global.get $~lib/rt/itcms/toSpace + local.get $this + call $~lib/rt/itcms/Object#get:isPointerfree + if (result i32) + global.get $~lib/rt/itcms/white + i32.eqz + else + i32.const 2 + end + call $~lib/rt/itcms/Object#linkTo + ) + (func $~lib/rt/itcms/__visit (type $i32_i32_=>_none) (param $ptr i32) (param $cookie i32) + (local $obj i32) + local.get $ptr + i32.eqz + if + return + end + local.get $ptr + i32.const 20 + i32.sub + local.set $obj + i32.const 0 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $obj + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) + (local $ptr i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + local.set $ptr + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + local.set $2 + local.get $2 + if + local.get $ptr + i32.load $0 + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end + end + ) + (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) + i32.const 4 + local.get $this + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + ) + (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store $0 + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store $0 + ) + (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store $0 offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 + ) + (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $6 i32) + (local $7 i32) + (local $boundedSize i32) + (local $prev i32) + (local $next i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) + (local $root|14 i32) + (local $fl|15 i32) + (local $sl|16 i32) + (local $head i32) + (local $root|18 i32) + (local $fl|19 i32) + (local $slMap i32) + (local $root|21 i32) + (local $fl|22 i32) + (local $slMap|23 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $6 + i32.const 1073741820 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/tlsf/Block#get:prev + local.set $prev + local.get $block + call $~lib/rt/tlsf/Block#get:next + local.set $next + local.get $prev + if + local.get $prev + local.get $next + call $~lib/rt/tlsf/Block#set:next + end + local.get $next + if + local.get $next + local.get $prev + call $~lib/rt/tlsf/Block#set:prev + end + local.get $block + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + i32.eq + if + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store $0 offset=96 + local.get $next + i32.eqz + if + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + local.set $slMap + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store $0 offset=4 + local.get $slMap + i32.eqz + if + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.const -1 + i32.xor + i32.and + call $~lib/rt/tlsf/Root#set:flMap + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) + (local $blockInfo i32) + (local $block|3 i32) + (local $right i32) + (local $rightInfo i32) + (local $block|6 i32) + (local $block|7 i32) + (local $left i32) + (local $leftInfo i32) + (local $size i32) + (local $fl i32) + (local $sl i32) + (local $13 i32) + (local $14 i32) + (local $boundedSize i32) + (local $root|16 i32) + (local $fl|17 i32) + (local $sl|18 i32) + (local $head i32) + (local $root|20 i32) + (local $fl|21 i32) + (local $sl|22 i32) + (local $head|23 i32) + (local $root|24 i32) + (local $fl|25 i32) + (local $root|26 i32) + (local $fl|27 i32) + (local $slMap i32) + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $blockInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + local.get $rightInfo + i32.const 1 + i32.and + if + local.get $root + local.get $right + call $~lib/rt/tlsf/removeBlock + local.get $block + local.get $blockInfo + i32.const 4 + i32.add + local.get $rightInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + local.set $left + local.get $left + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $leftInfo + i32.const 1 + drop + local.get $leftInfo + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $left + call $~lib/rt/tlsf/removeBlock + local.get $left + local.set $block + local.get $block + local.get $leftInfo + i32.const 4 + i32.add + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.tee $blockInfo + call $~lib/rt/common/BLOCK#set:mmInfo + end + local.get $right + local.get $rightInfo + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $size + i32.const 1 + drop + local.get $size + i32.const 12 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.get $right + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $right + i32.const 4 + i32.sub + local.get $block + i32.store $0 + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + local.tee $13 + i32.const 1073741820 + local.tee $14 + local.get $13 + local.get $14 + i32.lt_u + select + local.set $boundedSize + i32.const 31 + local.get $boundedSize + i32.clz + i32.sub + local.set $fl + local.get $boundedSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + local.set $head + local.get $block + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $block + local.get $head + call $~lib/rt/tlsf/Block#set:next + local.get $head + if + local.get $head + local.get $block + call $~lib/rt/tlsf/Block#set:prev + end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store $0 offset=96 + local.get $root + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 1 + local.get $fl + i32.shl + i32.or + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_i32) (param $root i32) (param $start i32) (param $end i32) (result i32) + (local $root|3 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|9 i32) + (local $tail|10 i32) + i32.const 1 + drop + local.get $start + local.get $end + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $start + 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 + local.set $start + local.get $end + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $end + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + local.set $tail + i32.const 0 + local.set $tailInfo + local.get $tail + if + i32.const 1 + drop + local.get $start + local.get $tail + i32.const 4 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $start + i32.const 16 + i32.sub + local.get $tail + i32.eq + if + local.get $start + i32.const 16 + i32.sub + local.set $start + local.get $tail + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $tailInfo + else + nop + end + else + i32.const 1 + drop + local.get $start + local.get $root + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $end + local.get $start + i32.sub + local.set $size + local.get $size + i32.const 4 + i32.const 12 + i32.add + i32.const 4 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $size + i32.const 2 + i32.const 4 + i32.mul + i32.sub + local.set $leftSize + local.get $start + local.set $left + local.get $left + local.get $leftSize + i32.const 1 + i32.or + local.get $tailInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:prev + local.get $left + i32.const 0 + call $~lib/rt/tlsf/Block#set:next + local.get $start + i32.const 4 + i32.add + local.get $leftSize + i32.add + local.set $tail + local.get $tail + i32.const 0 + i32.const 2 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.set $root|9 + local.get $tail + local.set $tail|10 + local.get $root|9 + local.get $tail|10 + i32.store $0 offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/initialize (type $none_=>_none) + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $7 i32) + (local $root|8 i32) + (local $fl|9 i32) + (local $slMap i32) + (local $sl i32) + (local $12 i32) + (local $root|13 i32) + (local $fl|14 i32) + (local $sl|15 i32) + (local $head i32) + (local $memStart i32) + i32.const 0 + drop + global.get $~lib/memory/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $rootOffset + memory.size $0 + local.set $pagesBefore + local.get $rootOffset + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $pagesNeeded + local.get $pagesNeeded + local.get $pagesBefore + i32.gt_s + if (result i32) + local.get $pagesNeeded + local.get $pagesBefore + i32.sub + memory.grow $0 + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $rootOffset + local.set $root + local.get $root + i32.const 0 + call $~lib/rt/tlsf/Root#set:flMap + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store $0 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $root + local.set $root|8 + local.get $fl + local.set $fl|9 + i32.const 0 + local.set $slMap + local.get $root|8 + local.get $fl|9 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store $0 offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + local.set $12 + local.get $12 + if + local.get $root + local.set $root|13 + local.get $fl + local.set $fl|14 + local.get $sl + local.set $sl|15 + i32.const 0 + local.set $head + local.get $root|13 + local.get $fl|14 + i32.const 4 + i32.shl + local.get $sl|15 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store $0 offset=96 + local.get $sl + i32.const 1 + i32.add + local.set $sl + br $for-loop|1 + end + end + local.get $fl + i32.const 1 + i32.add + local.set $fl + br $for-loop|0 + end + end + local.get $rootOffset + i32.const 1572 + i32.add + local.set $memStart + i32.const 0 + drop + local.get $root + local.get $memStart + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (type $i32_=>_i32) (param $ptr i32) (result i32) + (local $block i32) + local.get $ptr + i32.const 4 + i32.sub + local.set $block + local.get $ptr + i32.const 0 + i32.ne + if (result i32) + local.get $ptr + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + ) + (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) + i32.const 0 + drop + local.get $block + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $block + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (type $i32_=>_none) (param $ptr i32) + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $ptr + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/itcms/free (type $i32_=>_none) (param $obj i32) + local.get $obj + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev + else + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.sub + global.set $~lib/rt/itcms/total + i32.const 0 + drop + local.get $obj + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + ) + (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) + (local $obj i32) + (local $1 i32) + (local $black i32) + (local $3 i32) + (local $4 i32) + (local $from i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + local.set $1 + local.get $1 + i32.const 0 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $black + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $3 + local.get $3 + if + local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + i32.const 0 + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.eq + if + i32.const 0 + call $~lib/rt/itcms/visitStack + global.get $~lib/rt/itcms/iter + call $~lib/rt/itcms/Object#get:next + local.set $obj + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + local.set $4 + local.get $4 + if + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $from + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $from + global.set $~lib/rt/itcms/toSpace + local.get $black + global.set $~lib/rt/itcms/white + local.get $from + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + global.get $~lib/rt/itcms/iter + local.set $obj + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $obj + call $~lib/rt/itcms/Object#get:next + global.set $~lib/rt/itcms/iter + i32.const 1 + drop + local.get $obj + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $obj + call $~lib/rt/itcms/free + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:nextWithColor + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#set:prev + i32.const 0 + global.set $~lib/rt/itcms/state + br $break|0 + end + i32.const 0 + ) + (func $~lib/rt/itcms/interrupt (type $none_=>_none) + (local $budget i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1024 + i32.const 200 + i32.mul + i32.const 100 + i32.div_u + local.set $budget + loop $do-loop|0 + local.get $budget + call $~lib/rt/itcms/step + i32.sub + local.set $budget + global.get $~lib/rt/itcms/state + i32.const 0 + i32.eq + if + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i32.const 200 + i64.extend_i32_u + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + return + end + local.get $budget + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + i32.const 0 + drop + global.get $~lib/rt/itcms/total + i32.const 1024 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.mul + i32.add + global.set $~lib/rt/itcms/threshold + i32.const 0 + drop + ) + (func $~lib/rt/tlsf/computeSize (type $i32_=>_i32) (param $size i32) (result i32) + local.get $size + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $size + 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 + end + ) + (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 80 + i32.const 416 + i32.const 458 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + ) + (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) + (local $fl i32) + (local $sl i32) + (local $requestSize i32) + (local $root|5 i32) + (local $fl|6 i32) + (local $slMap i32) + (local $head i32) + (local $flMap i32) + (local $root|10 i32) + (local $fl|11 i32) + (local $root|12 i32) + (local $fl|13 i32) + (local $sl|14 i32) + (local $root|15 i32) + (local $fl|16 i32) + (local $sl|17 i32) + local.get $size + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $fl + local.get $size + i32.const 4 + i32.shr_u + local.set $sl + else + local.get $size + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $size + end + local.set $requestSize + i32.const 31 + local.get $requestSize + i32.clz + i32.sub + local.set $fl + local.get $requestSize + local.get $fl + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $sl + local.get $fl + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $fl + end + i32.const 1 + drop + local.get $fl + i32.const 23 + i32.lt_u + if (result i32) + local.get $sl + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 330 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $sl + i32.shl + i32.and + local.set $slMap + i32.const 0 + local.set $head + local.get $slMap + i32.eqz + if + local.get $root + call $~lib/rt/tlsf/Root#get:flMap + i32.const 0 + i32.const -1 + i32.xor + local.get $fl + i32.const 1 + i32.add + i32.shl + i32.and + local.set $flMap + local.get $flMap + i32.eqz + if + i32.const 0 + local.set $head + else + local.get $flMap + i32.ctz + local.set $fl + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + local.set $head + end + else + local.get $root + local.set $root|15 + local.get $fl + local.set $fl|16 + local.get $slMap + i32.ctz + local.set $sl|17 + local.get $root|15 + local.get $fl|16 + i32.const 4 + i32.shl + local.get $sl|17 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + local.set $head + end + local.get $head + ) + (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) + (local $pagesBefore i32) + (local $root|3 i32) + (local $pagesNeeded i32) + (local $5 i32) + (local $6 i32) + (local $pagesWanted i32) + (local $pagesAfter i32) + i32.const 0 + drop + local.get $size + i32.const 536870910 + i32.lt_u + if + local.get $size + i32.const 1 + i32.const 27 + local.get $size + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $size + end + memory.size $0 + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + i32.ne + i32.shl + i32.add + local.set $size + local.get $size + 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 $5 + local.get $pagesNeeded + local.tee $6 + local.get $5 + local.get $6 + i32.gt_s + select + local.set $pagesWanted + local.get $pagesWanted + memory.grow $0 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size $0 + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (type $i32_i32_i32_=>_none) (param $root i32) (param $block i32) (param $size i32) + (local $blockInfo i32) + (local $remaining i32) + (local $spare i32) + (local $block|6 i32) + (local $block|7 i32) + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $blockInfo + i32.const 1 + drop + local.get $size + i32.const 4 + i32.add + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 357 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $blockInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $size + i32.sub + local.set $remaining + local.get $remaining + i32.const 4 + i32.const 12 + i32.add + i32.ge_u + if + local.get $block + local.get $size + local.get $blockInfo + i32.const 2 + i32.and + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + i32.const 4 + i32.add + local.get $size + i32.add + local.set $spare + local.get $spare + local.get $remaining + i32.const 4 + i32.sub + i32.const 1 + i32.or + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $root + local.get $spare + call $~lib/rt/tlsf/insertBlock + else + local.get $block + local.get $blockInfo + i32.const 1 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) + (local $payloadSize i32) + (local $block i32) + local.get $size + call $~lib/rt/tlsf/prepareSize + local.set $payloadSize + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + local.get $block + i32.eqz + if + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/growMemory + local.get $root + local.get $payloadSize + call $~lib/rt/tlsf/searchBlock + local.set $block + i32.const 1 + drop + local.get $block + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + i32.const 1 + drop + local.get $block + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $payloadSize + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $root + local.get $block + call $~lib/rt/tlsf/removeBlock + local.get $root + local.get $block + local.get $payloadSize + call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop + local.get $block + ) + (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $size + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + ) + (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store $0 offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store $0 offset=16 + ) + (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) + (local $obj i32) + (local $ptr i32) + local.get $size + i32.const 1073741804 + i32.ge_u + if + i32.const 80 + i32.const 144 + i32.const 260 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + call $~lib/rt/itcms/interrupt + end + i32.const 16 + local.get $size + i32.add + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub + local.set $obj + local.get $obj + local.get $id + call $~lib/rt/itcms/Object#set:rtId + local.get $obj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $obj + global.get $~lib/rt/itcms/fromSpace + global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/Object#linkTo + global.get $~lib/rt/itcms/total + local.get $obj + call $~lib/rt/itcms/Object#get:size + i32.add + global.set $~lib/rt/itcms/total + local.get $obj + i32.const 20 + i32.add + local.set $ptr + local.get $ptr + i32.const 0 + local.get $size + memory.fill $0 + local.get $ptr + ) (func $start:instanceof (type $none_=>_none) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 84 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 84 + memory.fill $0 + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/a + local.tee $0 + i32.store $0 + local.get $0 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $0 + call $~instanceof|instanceof/B + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + call $instanceof/isI32 + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + call $instanceof/isI32 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $instanceof/isI32 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $instanceof/isI32 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/an + i32.const 0 + i32.ne + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + i32.const 1 + global.set $instanceof/an + global.get $instanceof/an + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 71 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + memory.size $0 + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 192 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 368 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $instanceof/Child#constructor + global.set $instanceof/child i32.const 1 drop i32.const 1 @@ -52,6 +2492,10 @@ i32.const 0 i32.eqz drop + i32.const 1 + drop + i32.const 1 + drop i32.const 0 i32.eqz drop @@ -61,14 +2505,61 @@ i32.const 0 i32.eqz drop + i32.const 0 + call $instanceof/Child#constructor + global.set $instanceof/childAsParent + i32.const 1 + drop i32.const 1 drop i32.const 0 i32.eqz drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/childAsParent + local.tee $1 + i32.store $0 offset=4 + local.get $1 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $1 + call $~instanceof|instanceof/Child + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 i32.eqz drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/childAsParent + local.tee $2 + i32.store $0 offset=8 + local.get $2 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $2 + call $~anyinstanceof|instanceof/Child + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 i32.eqz drop @@ -76,153 +2567,992 @@ i32.eqz drop i32.const 0 + call $instanceof/Animal#constructor + global.set $instanceof/animal + i32.const 0 + call $instanceof/Cat#constructor + global.set $instanceof/cat + i32.const 0 + call $instanceof/BlackCat#constructor + global.set $instanceof/blackcat + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/animal + local.tee $3 + i32.store $0 offset=12 + local.get $3 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $3 + call $~instanceof|instanceof/Cat + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/animal + local.tee $4 + i32.store $0 offset=16 + local.get $4 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $4 + call $~instanceof|instanceof/BlackCat + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/cat + local.tee $5 + i32.store $0 offset=20 + local.get $5 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $5 + call $~instanceof|instanceof/Cat + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/cat + local.tee $6 + i32.store $0 offset=24 + local.get $6 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $6 + call $~instanceof|instanceof/BlackCat + end + i32.eqz i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 drop + global.get $~lib/memory/__stack_pointer + global.get $instanceof/blackcat + local.tee $7 + i32.store $0 offset=28 + local.get $7 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $7 + call $~instanceof|instanceof/Cat + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/blackcat + local.tee $8 + i32.store $0 offset=32 + local.get $8 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $8 + call $~instanceof|instanceof/BlackCat + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $instanceof/Animal#constructor + global.set $instanceof/nullableAnimal + i32.const 0 + call $instanceof/Cat#constructor + global.set $instanceof/nullableCat + i32.const 0 + call $instanceof/BlackCat#constructor + global.set $instanceof/nullableBlackcat + global.get $instanceof/nullableAnimal + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableAnimal + local.tee $9 + i32.store $0 offset=36 + local.get $9 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $9 + call $~instanceof|instanceof/Cat + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableAnimal + local.tee $10 + i32.store $0 offset=40 + local.get $10 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $10 + call $~instanceof|instanceof/BlackCat + end + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullableCat i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableCat + local.tee $11 + i32.store $0 offset=44 + local.get $11 i32.eqz - drop - i32.const 1 - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $11 + call $~instanceof|instanceof/Cat + end i32.eqz - drop - i32.const 0 + if + i32.const 0 + i32.const 32 + i32.const 131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableCat + local.tee $12 + i32.store $0 offset=48 + local.get $12 i32.eqz - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $12 + call $~instanceof|instanceof/BlackCat + end i32.eqz - drop - i32.const 0 i32.eqz - drop + if + i32.const 0 + i32.const 32 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullableBlackcat i32.const 0 + i32.ne i32.eqz - drop - i32.const 0 + if + i32.const 0 + i32.const 32 + i32.const 134 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableBlackcat + local.tee $13 + i32.store $0 offset=52 + local.get $13 i32.eqz - drop - i32.const 1 - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $13 + call $~instanceof|instanceof/Cat + end i32.eqz - drop - i32.const 0 + if + i32.const 0 + i32.const 32 + i32.const 135 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableBlackcat + local.tee $14 + i32.store $0 offset=56 + local.get $14 i32.eqz - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $14 + call $~instanceof|instanceof/BlackCat + end i32.eqz - drop + if + i32.const 0 + i32.const 32 + i32.const 136 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullAnimal i32.const 0 + i32.ne i32.eqz - drop - i32.const 0 i32.eqz - drop - i32.const 0 + if + i32.const 0 + i32.const 32 + i32.const 142 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullAnimal + local.tee $15 + i32.store $0 offset=60 + local.get $15 i32.eqz - drop - i32.const 1 - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $15 + call $~instanceof|instanceof/Cat + end i32.eqz - drop - i32.const 0 i32.eqz - drop - i32.const 0 + if + i32.const 0 + i32.const 32 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullAnimal + local.tee $16 + i32.store $0 offset=64 + local.get $16 i32.eqz - drop - i32.const 0 + if (result i32) + i32.const 0 + else + local.get $16 + call $~instanceof|instanceof/BlackCat + end i32.eqz - drop - i32.const 0 i32.eqz - drop + if + i32.const 0 + i32.const 32 + i32.const 144 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullCat i32.const 0 + i32.ne i32.eqz - drop - i32.const 1 - drop - i32.const 0 - call $instanceof/isI32 i32.eqz if i32.const 0 i32.const 32 - i32.const 62 + i32.const 146 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 - call $instanceof/isI32 + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullCat + local.tee $17 + i32.store $0 offset=68 + local.get $17 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $17 + call $~instanceof|instanceof/Cat + end i32.eqz i32.eqz if i32.const 0 i32.const 32 - i32.const 63 + i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - call $instanceof/isI32 + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullCat + local.tee $18 + i32.store $0 offset=72 + local.get $18 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $18 + call $~instanceof|instanceof/BlackCat + end i32.eqz i32.eqz if i32.const 0 i32.const 32 - i32.const 64 + i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $instanceof/nullBlackcat i32.const 0 - call $instanceof/isI32 + i32.ne i32.eqz i32.eqz if i32.const 0 i32.const 32 - i32.const 65 + i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $instanceof/an - i32.const 0 - i32.ne + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullBlackcat + local.tee $19 + i32.store $0 offset=76 + local.get $19 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $19 + call $~instanceof|instanceof/Cat + end i32.eqz i32.eqz if i32.const 0 i32.const 32 - i32.const 68 + i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - drop - i32.const 1 - global.set $instanceof/an - global.get $instanceof/an - i32.const 0 - i32.ne + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullBlackcat + local.tee $20 + i32.store $0 offset=80 + local.get $20 + i32.eqz + if (result i32) + i32.const 0 + else + local.get $20 + call $~instanceof|instanceof/BlackCat + end + i32.eqz i32.eqz if i32.const 0 i32.const 32 - i32.const 71 + i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 84 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~instanceof|instanceof/B (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 4 + i32.eq + br_if $is_instance + i32.const 0 + return + end i32.const 1 - drop + ) + (func $~instanceof|instanceof/Child (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 7 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) + (func $~anyinstanceof|instanceof/Child (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 5 + i32.eq + br_if $is_instance + local.get $1 + i32.const 7 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) + (func $~instanceof|instanceof/Cat (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 11 + i32.eq + br_if $is_instance + local.get $1 + i32.const 12 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) + (func $~instanceof|instanceof/BlackCat (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.set $1 + local.get $1 + i32.const 12 + i32.eq + br_if $is_instance + i32.const 0 + return + end + i32.const 1 + ) + (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) + (local $1 i32) + global.get $instanceof/a + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/b + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/an + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/child + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/childAsParent + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/animal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/cat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/blackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableAnimal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableCat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableBlackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullAnimal + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullCat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullBlackcat + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 272 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 80 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load $0 + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/rt/__visit_members (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + block $invalid + block $instanceof/BlackCat + block $instanceof/Cat + block $instanceof/Animal + block $instanceof/SomethingElse + block $instanceof/Parent + block $instanceof/Child + block $instanceof/Parent + block $instanceof/Child + block $instanceof/B + block $instanceof/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof/A $instanceof/B $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $invalid + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable ) (func $~start (type $none_=>_none) call $start:instanceof ) + (func $~stack_check (type $none_=>_none) + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33360 + i32.const 33408 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $instanceof/Parent#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/Child#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $instanceof/Parent#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/Parent#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/Child#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $instanceof/Parent#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/Animal#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/Cat#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $instanceof/Animal#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/BlackCat#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $instanceof/Cat#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) ) diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index e0e1a6cbe1..9da912c436 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1,24 +1,2273 @@ (module - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) + (type $none_=>_i32 (func_subtype (result i32) func)) + (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $instanceof/an (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $instanceof/child (mut i32) (i32.const 0)) + (global $instanceof/childAsParent (mut i32) (i32.const 0)) + (global $instanceof/animal (mut i32) (i32.const 0)) + (global $instanceof/cat (mut i32) (i32.const 0)) + (global $instanceof/blackcat (mut i32) (i32.const 0)) + (global $instanceof/nullableAnimal (mut i32) (i32.const 0)) + (global $instanceof/nullableCat (mut i32) (i32.const 0)) + (global $instanceof/nullableBlackcat (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34364)) (memory $0 1) (data (i32.const 1036) ",") (data (i32.const 1048) "\01\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") + (data (i32.const 1084) "<") + (data (i32.const 1096) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data (i32.const 1148) "<") + (data (i32.const 1160) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1276) "<") + (data (i32.const 1288) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data (i32.const 1340) ",") + (data (i32.const 1352) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1420) "<") + (data (i32.const 1432) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1488) "\r\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 1516) " \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\08\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\n\00\00\00 \00\00\00\0b") (export "memory" (memory $0)) (start $~start) - (func $~start (type $none_=>_none) + (func $~lib/rt/itcms/visitRoots (type $none_=>_none) + (local $0 i32) + (local $1 i32) global.get $instanceof/an + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/child + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/childAsParent + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/animal + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/cat + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/blackcat + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/nullableAnimal + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/nullableCat + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/nullableBlackcat + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + i32.const 1296 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 1104 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 159 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load $0 + local.tee $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if i32.const 0 - i32.const 1056 - i32.const 68 + i32.const 1440 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load $0 offset=8 + local.set $5 + local.get $1 + i32.load $0 offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store $0 offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store $0 offset=4 + end + local.get $1 + local.get $0 + local.get $3 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + i32.eq + if + local.get $0 + local.get $3 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store $0 offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 offset=4 + i32.const -2 + local.get $2 + i32.rotl + i32.and + local.set $2 + local.get $1 + local.get $2 + i32.store $0 offset=4 + local.get $2 + i32.eqz + if + local.get $0 + local.get $0 + i32.load $0 + i32.const -2 + local.get $3 + i32.rotl + i32.and + i32.store $0 + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load $0 + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load $0 + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store $0 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load $0 + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load $0 + local.tee $1 + i32.load $0 + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store $0 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store $0 + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1440 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store $0 + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) + local.get $2 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz + i32.sub + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $2 + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store $0 offset=4 + local.get $1 + local.get $3 + i32.store $0 offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store $0 offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store $0 offset=96 + local.get $0 + local.get $0 + i32.load $0 + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store $0 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load $0 offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store $0 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + local.get $2 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 377 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load $0 offset=1568 + local.tee $4 + if + local.get $4 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 384 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $4 + i32.load $0 + local.set $3 + local.get $1 + i32.const 16 + i32.sub + local.set $1 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 397 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $2 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $3 + i32.const 2 + i32.and + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.const 1 + i32.or + i32.or + i32.store $0 + local.get $1 + i32.const 0 + i32.store $0 offset=4 + local.get $1 + i32.const 0 + i32.store $0 offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + local.tee $2 + i32.const 2 + i32.store $0 + local.get $0 + local.get $2 + i32.store $0 offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize (type $none_=>_none) + (local $0 i32) + (local $1 i32) + memory.size $0 + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 + local.get $1 + i32.sub + memory.grow $0 + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34368 + i32.const 0 + i32.store $0 + i32.const 35936 + i32.const 0 + i32.store $0 + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34368 + i32.add + i32.const 0 + i32.store $0 offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u + if + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34368 + i32.add + i32.const 0 + i32.store $0 offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34368 + i32.const 35940 + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store $0 offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34364 + i32.lt_u + if + local.get $0 + i32.load $0 + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $1 + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store $0 offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load $0 offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34364 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store $0 offset=4 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34364 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load $0 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load $0 + i32.const 1 + i32.or + i32.store $0 + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store $0 offset=4 + local.get $0 + local.get $0 + i32.store $0 offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load $0 offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + else + local.get $0 + i32.load $0 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $2 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 343 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $1 + loop $do-loop|0 + local.get $1 + call $~lib/rt/itcms/step + i32.sub + local.set $1 + global.get $~lib/rt/itcms/state + i32.eqz + if + 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$~lib/rt/itcms/interrupt + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $1 + local.get $1 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + memory.size $0 + local.tee $1 + i32.const 4 + local.get $2 + i32.load $0 offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow $0 + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow $0 + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size $0 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 498 + i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load $0 + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store $0 + local.get $1 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store $0 + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const -2 + i32.and + i32.store $0 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load $0 + i32.const -3 + i32.and + i32.store $0 + end + local.get $1 + local.get $0 + i32.store $0 offset=12 + local.get $1 + i32.const 0 + i32.store $0 offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load $0 offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load $0 + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.const 0 + memory.fill $0 + local.get $0 + ) + (func $start:instanceof (type $none_=>_none) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 84 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.const 84 + memory.fill $0 + local.get $0 + i32.const 0 + i32.store $0 + global.get $instanceof/an + if + i32.const 0 + i32.const 1056 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $instanceof/an + memory.size $0 + i32.const 16 + i32.shl + i32.const 34364 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store $0 + i32.const 1224 + i32.const 1216 + i32.store $0 + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store $0 + i32.const 1256 + i32.const 1248 + i32.store $0 + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store $0 + i32.const 1400 + i32.const 1392 + i32.store $0 + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $instanceof/child + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $instanceof/childAsParent + global.get $~lib/memory/__stack_pointer + global.get $instanceof/childAsParent + local.tee $0 + i32.store $0 offset=4 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 7 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/childAsParent + local.tee $0 + i32.store $0 offset=8 + local.get $0 + if (result i32) + block $__inlined_func$~anyinstanceof|instanceof/Child (result i32) + block $is_instance2 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 5 + i32.eq + br_if $is_instance2 + local.get $0 + i32.const 7 + i32.eq + br_if $is_instance2 + i32.const 0 + br $__inlined_func$~anyinstanceof|instanceof/Child + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $instanceof/Animal#constructor + global.set $instanceof/animal + i32.const 0 + call $instanceof/Cat#constructor + global.set $instanceof/cat + call $instanceof/BlackCat#constructor + global.set $instanceof/blackcat + global.get $~lib/memory/__stack_pointer + global.get $instanceof/animal + local.tee $0 + i32.store $0 offset=12 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat (result i32) + block $is_instance3 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance3 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance3 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat + end + i32.const 1 + end + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 111 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/animal + local.tee $0 + i32.store $0 offset=16 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/cat + local.tee $0 + i32.store $0 offset=20 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat5 (result i32) + block $is_instance6 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance6 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance6 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat5 + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/cat + local.tee $0 + i32.store $0 offset=24 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 116 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/blackcat + local.tee $0 + i32.store $0 offset=28 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat9 (result i32) + block $is_instance10 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance10 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance10 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat9 + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 119 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/blackcat + local.tee $0 + i32.store $0 offset=32 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 120 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $instanceof/Animal#constructor + global.set $instanceof/nullableAnimal + i32.const 0 + call $instanceof/Cat#constructor + global.set $instanceof/nullableCat + call $instanceof/BlackCat#constructor + global.set $instanceof/nullableBlackcat + global.get $instanceof/nullableAnimal + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 126 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableAnimal + local.tee $0 + i32.store $0 offset=36 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat13 (result i32) + block $is_instance14 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance14 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance14 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat13 + end + i32.const 1 + end + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 127 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableAnimal + local.tee $0 + i32.store $0 offset=40 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullableCat + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableCat + local.tee $0 + i32.store $0 offset=44 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat17 (result i32) + block $is_instance18 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance18 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance18 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat17 + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableCat + local.tee $0 + i32.store $0 offset=48 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + if + i32.const 0 + i32.const 1056 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/nullableBlackcat + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 134 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableBlackcat + local.tee $0 + i32.store $0 offset=52 + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Cat21 (result i32) + block $is_instance22 + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + local.tee $0 + i32.const 11 + i32.eq + br_if $is_instance22 + local.get $0 + i32.const 12 + i32.eq + br_if $is_instance22 + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Cat21 + end + i32.const 1 + end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $instanceof/nullableBlackcat + local.tee $0 + i32.store $0 offset=56 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 12 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 136 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 offset=60 + local.get $0 + i32.const 0 + i32.store $0 offset=64 + local.get $0 + i32.const 0 + i32.store $0 offset=68 + local.get $0 + i32.const 0 + i32.store $0 offset=72 + local.get $0 + i32.const 0 + i32.store $0 offset=76 + local.get $0 + i32.const 0 + i32.store $0 offset=80 + local.get $0 + i32.const 84 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34384 + i32.const 34432 + i32.const 1 i32.const 1 - global.set $instanceof/an + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + block $invalid + block $instanceof/BlackCat + block $instanceof/Cat + block $instanceof/Animal + block $instanceof/SomethingElse + block $instanceof/Parent + block $instanceof/Child + block $instanceof/Parent + block $instanceof/Child + block $instanceof/B + block $instanceof/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof/A $instanceof/B $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $invalid + end + return + end + return + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start (type $none_=>_none) + call $start:instanceof + ) + (func $instanceof/Animal#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + 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 + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $instanceof/Cat#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + 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 + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof/Animal#constructor + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $instanceof/BlackCat#constructor (type $none_=>_i32) (result i32) + (local $0 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 1596 + 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 $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof/Cat#constructor + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $1 + i32.load $0 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 147 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $1 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load $0 offset=8 + i32.eqz + local.get $1 + i32.const 34364 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 127 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $1 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 131 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load $0 offset=12 + local.tee $0 + i32.const 1 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 22 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $0 + i32.store $0 offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $1 + i32.store $0 offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end ) ) diff --git a/tests/compiler/instanceof.ts b/tests/compiler/instanceof.ts index 137f072f0d..8695c1b050 100644 --- a/tests/compiler/instanceof.ts +++ b/tests/compiler/instanceof.ts @@ -15,7 +15,7 @@ assert(!(I instanceof A)); assert(!(f instanceof A)); assert(!(F instanceof A)); -// assert(!(a instanceof B)); // dynamic downcast, checked in rt/instanceof +assert(!(a instanceof B)); assert( b instanceof B ); assert(!(i instanceof B)); assert(!(I instanceof B)); @@ -71,5 +71,82 @@ an = changetype(1); assert( an instanceof A); // TS: !=null is an instance of A assert( an instanceof A | null); // AS: !=null is an instance of A | null -// TODO: keep track of nullability during flows, so this becomes precomputable: -// assert(an != null && an instanceof A); +// Formerly instanceof-class + +class Parent {} +class Child extends Parent {} +class SomethingElse {} + +var child: Child = new Child(); +assert(child instanceof Child); // static true +assert(child instanceof Child); // static true +assert(!(child instanceof Child)); // static false +assert(child instanceof Parent); // static true +assert(child instanceof Parent); // static true +assert(!(child instanceof Parent)); // static false +assert(!(child instanceof SomethingElse)); // static false +assert(!(child instanceof SomethingElse)); // static false + +var childAsParent: Parent = new Child(); +assert(childAsParent instanceof Parent); // static true +assert(childAsParent instanceof Parent); // static true +assert(!(childAsParent instanceof Parent)); // static false +assert(childAsParent instanceof Child); // dynamic true +assert(!(childAsParent instanceof Child)); // dynamic false +assert(childAsParent instanceof Child); // dynamic true (checks Child, Child) +assert(!(childAsParent instanceof SomethingElse)); // static false +assert(!(childAsParent instanceof SomethingElse)); // static false + +// Formerly rt/instanceof + +class Animal {} +class Cat extends Animal {} +class BlackCat extends Cat {} + +var animal: Animal = new Animal(); +var cat: Animal = new Cat(); +var blackcat: Animal = new BlackCat(); + +assert(animal instanceof Animal); // static true +assert(!(animal instanceof Cat)); // dynamic false +assert(!(animal instanceof BlackCat)); // dynamic false + +assert(cat instanceof Animal); // static true +assert(cat instanceof Cat); // dynamic true +assert(!(cat instanceof BlackCat)); // dynamic false + +assert(blackcat instanceof Animal); // static true +assert(blackcat instanceof Cat); // dynamic true +assert(blackcat instanceof BlackCat); // dynamic true + +var nullableAnimal: Animal | null = new Animal(); +var nullableCat: Animal | null = new Cat(); +var nullableBlackcat: Animal | null = new BlackCat(); + +assert(nullableAnimal instanceof Animal); // static true +assert(!(nullableAnimal instanceof Cat)); // dynamic false +assert(!(nullableAnimal instanceof BlackCat)); // dynamic false + +assert(nullableCat instanceof Animal); // static true +assert(nullableCat instanceof Cat); // dynamic true +assert(!(nullableCat instanceof BlackCat)); // dynamic false + +assert(nullableBlackcat instanceof Animal); // static true +assert(nullableBlackcat instanceof Cat); // dynamic true +assert(nullableBlackcat instanceof BlackCat); // dynamic true + +var nullAnimal: Animal | null = null; +var nullCat: Animal | null = null; +var nullBlackcat: Animal | null = null; + +assert(!(nullAnimal instanceof Animal)); // static false +assert(!(nullAnimal instanceof Cat)); // dynamic false +assert(!(nullAnimal instanceof BlackCat)); // dynamic false + +assert(!(nullCat instanceof Animal)); // static false +assert(!(nullCat instanceof Cat)); // dynamic false +assert(!(nullCat instanceof BlackCat)); // dynamic false + +assert(!(nullBlackcat instanceof Animal)); // static false +assert(!(nullBlackcat instanceof Cat)); // dynamic false +assert(!(nullBlackcat instanceof BlackCat)); // dynamic false diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index f1e2704a86..cd3b7a30ce 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -2364,6 +2364,8 @@ i32.const 8 i32.sub i32.load $0 + local.set $1 + local.get $1 i32.const 3 i32.eq br_if $is_instance diff --git a/tests/compiler/rt/instanceof.debug.wat b/tests/compiler/rt/instanceof.debug.wat deleted file mode 100644 index 2cd5fad02b..0000000000 --- a/tests/compiler/rt/instanceof.debug.wat +++ /dev/null @@ -1,3008 +0,0 @@ -(module - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) - (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $rt/instanceof/animal (mut i32) (i32.const 0)) - (global $rt/instanceof/cat (mut i32) (i32.const 0)) - (global $rt/instanceof/blackcat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableAnimal (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableCat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableBlackcat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullAnimal (mut i32) (i32.const 0)) - (global $rt/instanceof/nullCat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullBlackcat (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 480)) - (global $~lib/memory/__data_end i32 (i32.const 532)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33300)) - (global $~lib/memory/__heap_base i32 (i32.const 33300)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 480) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) - local.get $this - local.get $nextWithColor - i32.store $0 offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store $0 offset=8 - ) - (func $~lib/rt/itcms/initLazy (type $i32_=>_i32) (param $space i32) (result i32) - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $space - local.get $space - call $~lib/rt/itcms/Object#set:prev - local.get $space - ) - (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/itcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) - (local $pn i32) - (local $iter i32) - (local $3 i32) - local.get $cookie - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $pn - local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 159 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (type $i32_i32_=>_none) (param $this i32) (param $color i32) - local.get $this - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $color - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=8 - ) - (func $~lib/rt/itcms/Object#set:next (type $i32_i32_=>_none) (param $this i32) (param $obj i32) - local.get $this - local.get $obj - local.get $this - call $~lib/rt/itcms/Object#get:nextWithColor - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (type $i32_=>_none) (param $this i32) - (local $next i32) - (local $prev i32) - local.get $this - call $~lib/rt/itcms/Object#get:next - local.set $next - local.get $next - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $this - call $~lib/rt/itcms/Object#get:prev - i32.const 0 - i32.eq - if (result i32) - local.get $this - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 127 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.set $prev - i32.const 1 - drop - local.get $prev - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 131 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $next - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $next - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 - ) - (func $~lib/shared/typeinfo/Typeinfo#get:flags (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/__typeinfo (type $i32_=>_i32) (param $id i32) (result i32) - (local $ptr i32) - global.get $~lib/rt/__rtti_base - local.set $ptr - local.get $id - local.get $ptr - i32.load $0 - i32.gt_u - if - i32.const 224 - i32.const 288 - i32.const 22 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $ptr - i32.const 4 - i32.add - local.get $id - i32.const 8 - i32.mul - i32.add - call $~lib/shared/typeinfo/Typeinfo#get:flags - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) - (local $rtId i32) - local.get $this - call $~lib/rt/itcms/Object#get:rtId - local.set $rtId - local.get $rtId - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $rtId - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - ) - (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) - (local $prev i32) - local.get $list - call $~lib/rt/itcms/Object#get:prev - local.set $prev - local.get $this - local.get $list - local.get $withColor - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $this - local.get $prev - call $~lib/rt/itcms/Object#set:prev - local.get $prev - local.get $this - call $~lib/rt/itcms/Object#set:next - local.get $list - local.get $this - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $this i32) - (local $1 i32) - local.get $this - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $this - call $~lib/rt/itcms/Object#get:prev - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 96 - i32.const 147 - i32.const 30 - call $~lib/builtins/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $this - call $~lib/rt/itcms/Object#unlink - local.get $this - global.get $~lib/rt/itcms/toSpace - local.get $this - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (type $i32_i32_=>_none) (param $ptr i32) (param $cookie i32) - (local $obj i32) - local.get $ptr - i32.eqz - if - return - end - local.get $ptr - i32.const 20 - i32.sub - local.set $obj - i32.const 0 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $obj - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) - (local $ptr i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - local.set $2 - local.get $2 - if - local.get $ptr - i32.load $0 - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end - end - ) - (func $~lib/rt/common/BLOCK#get:mmInfo (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/itcms/Object#get:size (type $i32_=>_i32) (param $this i32) (result i32) - i32.const 4 - local.get $this - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - ) - (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) - local.get $this - local.get $flMap - i32.store $0 - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (type $i32_i32_=>_none) (param $this i32) (param $mmInfo i32) - local.get $this - local.get $mmInfo - i32.store $0 - ) - (func $~lib/rt/tlsf/Block#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) - local.get $this - local.get $prev - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (type $i32_i32_=>_none) (param $this i32) (param $next i32) - local.get $this - local.get $next - i32.store $0 offset=8 - ) - (func $~lib/rt/tlsf/Block#get:prev (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=4 - ) - (func $~lib/rt/tlsf/Block#get:next (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 - ) - (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $6 i32) - (local $7 i32) - (local $boundedSize i32) - (local $prev i32) - (local $next i32) - (local $root|11 i32) - (local $fl|12 i32) - (local $sl|13 i32) - (local $root|14 i32) - (local $fl|15 i32) - (local $sl|16 i32) - (local $head i32) - (local $root|18 i32) - (local $fl|19 i32) - (local $slMap i32) - (local $root|21 i32) - (local $fl|22 i32) - (local $slMap|23 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/tlsf/Block#get:prev - local.set $prev - local.get $block - call $~lib/rt/tlsf/Block#get:next - local.set $next - local.get $prev - if - local.get $prev - local.get $next - call $~lib/rt/tlsf/Block#set:next - end - local.get $next - if - local.get $next - local.get $prev - call $~lib/rt/tlsf/Block#set:prev - end - local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - i32.eq - if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store $0 offset=96 - local.get $next - i32.eqz - if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store $0 offset=4 - local.get $slMap - i32.eqz - if - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - (local $blockInfo i32) - (local $block|3 i32) - (local $right i32) - (local $rightInfo i32) - (local $block|6 i32) - (local $block|7 i32) - (local $left i32) - (local $leftInfo i32) - (local $size i32) - (local $fl i32) - (local $sl i32) - (local $13 i32) - (local $14 i32) - (local $boundedSize i32) - (local $root|16 i32) - (local $fl|17 i32) - (local $sl|18 i32) - (local $head i32) - (local $root|20 i32) - (local $fl|21 i32) - (local $sl|22 i32) - (local $head|23 i32) - (local $root|24 i32) - (local $fl|25 i32) - (local $root|26 i32) - (local $fl|27 i32) - (local $slMap i32) - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $blockInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - local.get $rightInfo - i32.const 1 - i32.and - if - local.get $root - local.get $right - call $~lib/rt/tlsf/removeBlock - local.get $block - local.get $blockInfo - i32.const 4 - i32.add - local.get $rightInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $right - local.get $right - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $rightInfo - end - local.get $blockInfo - i32.const 2 - i32.and - if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 - local.set $left - local.get $left - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $leftInfo - i32.const 1 - drop - local.get $leftInfo - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $left - call $~lib/rt/tlsf/removeBlock - local.get $left - local.set $block - local.get $block - local.get $leftInfo - i32.const 4 - i32.add - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $blockInfo - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $right - local.get $rightInfo - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $size - i32.const 1 - drop - local.get $size - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.get $right - i32.eq - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $right - i32.const 4 - i32.sub - local.get $block - i32.store $0 - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - local.tee $13 - i32.const 1073741820 - local.tee $14 - local.get $13 - local.get $14 - i32.lt_u - select - local.set $boundedSize - i32.const 31 - local.get $boundedSize - i32.clz - i32.sub - local.set $fl - local.get $boundedSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - local.get $block - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $block - local.get $head - call $~lib/rt/tlsf/Block#set:next - local.get $head - if - local.get $head - local.get $block - call $~lib/rt/tlsf/Block#set:prev - end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store $0 offset=96 - local.get $root - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 1 - local.get $fl - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_i32) (param $root i32) (param $start i32) (param $end i32) (result i32) - (local $root|3 i32) - (local $tail i32) - (local $tailInfo i32) - (local $size i32) - (local $leftSize i32) - (local $left i32) - (local $root|9 i32) - (local $tail|10 i32) - i32.const 1 - drop - local.get $start - local.get $end - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 377 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $start - 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 - local.set $start - local.get $end - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 - local.set $tail - i32.const 0 - local.set $tailInfo - local.get $tail - if - i32.const 1 - drop - local.get $start - local.get $tail - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 384 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $start - i32.const 16 - i32.sub - local.get $tail - i32.eq - if - local.get $start - i32.const 16 - i32.sub - local.set $start - local.get $tail - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $tailInfo - else - nop - end - else - i32.const 1 - drop - local.get $start - local.get $root - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 397 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $end - local.get $start - i32.sub - local.set $size - local.get $size - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $size - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $leftSize - local.get $start - local.set $left - local.get $left - local.get $leftSize - i32.const 1 - i32.or - local.get $tailInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $left - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $start - i32.const 4 - i32.add - local.get $leftSize - i32.add - local.set $tail - local.get $tail - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|9 - local.get $tail - local.set $tail|10 - local.get $root|9 - local.get $tail|10 - i32.store $0 offset=1568 - local.get $root - local.get $left - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/initialize (type $none_=>_none) - (local $rootOffset i32) - (local $pagesBefore i32) - (local $pagesNeeded i32) - (local $root i32) - (local $root|4 i32) - (local $tail i32) - (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) - (local $slMap i32) - (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) - (local $head i32) - (local $memStart i32) - i32.const 0 - drop - global.get $~lib/memory/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $rootOffset - memory.size $0 - local.set $pagesBefore - local.get $rootOffset - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $pagesNeeded - local.get $pagesNeeded - local.get $pagesBefore - i32.gt_s - if (result i32) - local.get $pagesNeeded - local.get $pagesBefore - i32.sub - memory.grow $0 - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $rootOffset - local.set $root - local.get $root - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store $0 offset=1568 - i32.const 0 - local.set $fl - loop $for-loop|0 - local.get $fl - i32.const 23 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $root - local.set $root|8 - local.get $fl - local.set $fl|9 - i32.const 0 - local.set $slMap - local.get $root|8 - local.get $fl|9 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store $0 offset=4 - i32.const 0 - local.set $sl - loop $for-loop|1 - local.get $sl - i32.const 16 - i32.lt_u - local.set $12 - local.get $12 - if - local.get $root - local.set $root|13 - local.get $fl - local.set $fl|14 - local.get $sl - local.set $sl|15 - i32.const 0 - local.set $head - local.get $root|13 - local.get $fl|14 - i32.const 4 - i32.shl - local.get $sl|15 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store $0 offset=96 - local.get $sl - i32.const 1 - i32.add - local.set $sl - br $for-loop|1 - end - end - local.get $fl - i32.const 1 - i32.add - local.set $fl - br $for-loop|0 - end - end - local.get $rootOffset - i32.const 1572 - i32.add - local.set $memStart - i32.const 0 - drop - local.get $root - local.get $memStart - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $root - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (type $i32_=>_i32) (param $ptr i32) (result i32) - (local $block i32) - local.get $ptr - i32.const 4 - i32.sub - local.set $block - local.get $ptr - i32.const 0 - i32.ne - if (result i32) - local.get $ptr - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $block - ) - (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) - i32.const 0 - drop - local.get $block - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $block - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (type $i32_=>_none) (param $ptr i32) - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $ptr - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (type $i32_=>_none) (param $obj i32) - local.get $obj - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $obj - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $obj - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) - (local $obj i32) - (local $1 i32) - (local $black i32) - (local $3 i32) - (local $4 i32) - (local $from i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $black - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $3 - local.get $3 - if - local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.eq - if - i32.const 0 - call $~lib/rt/itcms/visitStack - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $4 - local.get $4 - if - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $from - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $from - global.set $~lib/rt/itcms/toSpace - local.get $black - global.set $~lib/rt/itcms/white - local.get $from - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $obj - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $obj - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $obj - call $~lib/rt/itcms/free - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:nextWithColor - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:prev - i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 - end - i32.const 0 - ) - (func $~lib/rt/itcms/interrupt (type $none_=>_none) - (local $budget i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $budget - loop $do-loop|0 - local.get $budget - call $~lib/rt/itcms/step - i32.sub - local.set $budget - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $budget - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i32.const 1024 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.mul - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - ) - (func $~lib/rt/tlsf/computeSize (type $i32_=>_i32) (param $size i32) (result i32) - local.get $size - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $size - 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 - end - ) - (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) - local.get $size - i32.const 1073741820 - i32.gt_u - if - i32.const 32 - i32.const 368 - i32.const 458 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $size - call $~lib/rt/tlsf/computeSize - ) - (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) - (local $fl i32) - (local $sl i32) - (local $requestSize i32) - (local $root|5 i32) - (local $fl|6 i32) - (local $slMap i32) - (local $head i32) - (local $flMap i32) - (local $root|10 i32) - (local $fl|11 i32) - (local $root|12 i32) - (local $fl|13 i32) - (local $sl|14 i32) - (local $root|15 i32) - (local $fl|16 i32) - (local $sl|17 i32) - local.get $size - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $fl - local.get $size - i32.const 4 - i32.shr_u - local.set $sl - else - local.get $size - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $size - end - local.set $requestSize - i32.const 31 - local.get $requestSize - i32.clz - i32.sub - local.set $fl - local.get $requestSize - local.get $fl - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $sl - local.get $fl - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $fl - end - i32.const 1 - drop - local.get $fl - i32.const 23 - i32.lt_u - if (result i32) - local.get $sl - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 330 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $sl - i32.shl - i32.and - local.set $slMap - i32.const 0 - local.set $head - local.get $slMap - i32.eqz - if - local.get $root - call $~lib/rt/tlsf/Root#get:flMap - i32.const 0 - i32.const -1 - i32.xor - local.get $fl - i32.const 1 - i32.add - i32.shl - i32.and - local.set $flMap - local.get $flMap - i32.eqz - if - i32.const 0 - local.set $head - else - local.get $flMap - i32.ctz - local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.set $slMap - i32.const 1 - drop - local.get $slMap - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 343 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.set $root|12 - local.get $fl - local.set $fl|13 - local.get $slMap - i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 - i32.const 4 - i32.shl - local.get $sl|14 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $head - end - local.get $head - ) - (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) - (local $pagesBefore i32) - (local $root|3 i32) - (local $pagesNeeded i32) - (local $5 i32) - (local $6 i32) - (local $pagesWanted i32) - (local $pagesAfter i32) - i32.const 0 - drop - local.get $size - i32.const 536870910 - i32.lt_u - if - local.get $size - i32.const 1 - i32.const 27 - local.get $size - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $size - end - memory.size $0 - local.set $pagesBefore - local.get $size - i32.const 4 - local.get $pagesBefore - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 - i32.ne - i32.shl - i32.add - local.set $size - local.get $size - 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 $5 - local.get $pagesNeeded - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.set $pagesWanted - local.get $pagesWanted - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $pagesNeeded - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size $0 - local.set $pagesAfter - local.get $root - local.get $pagesBefore - i32.const 16 - i32.shl - local.get $pagesAfter - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (type $i32_i32_i32_=>_none) (param $root i32) (param $block i32) (param $size i32) - (local $blockInfo i32) - (local $remaining i32) - (local $spare i32) - (local $block|6 i32) - (local $block|7 i32) - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - local.set $blockInfo - i32.const 1 - drop - local.get $size - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 357 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $blockInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $size - i32.sub - local.set $remaining - local.get $remaining - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $block - local.get $size - local.get $blockInfo - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - i32.const 4 - i32.add - local.get $size - i32.add - local.set $spare - local.get $spare - local.get $remaining - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.get $spare - call $~lib/rt/tlsf/insertBlock - else - local.get $block - local.get $blockInfo - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) - (local $payloadSize i32) - (local $block i32) - local.get $size - call $~lib/rt/tlsf/prepareSize - local.set $payloadSize - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - local.get $block - i32.eqz - if - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/growMemory - local.get $root - local.get $payloadSize - call $~lib/rt/tlsf/searchBlock - local.set $block - i32.const 1 - drop - local.get $block - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - i32.const 1 - drop - local.get $block - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $payloadSize - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $root - local.get $block - call $~lib/rt/tlsf/removeBlock - local.get $root - local.get $block - local.get $payloadSize - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $block - ) - (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $size - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - ) - (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) - local.get $this - local.get $rtId - i32.store $0 offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (type $i32_i32_=>_none) (param $this i32) (param $rtSize i32) - local.get $this - local.get $rtSize - i32.store $0 offset=16 - ) - (func $~lib/rt/itcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) - (local $obj i32) - (local $ptr i32) - local.get $size - i32.const 1073741804 - i32.ge_u - if - i32.const 32 - i32.const 96 - i32.const 260 - i32.const 31 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt - end - i32.const 16 - local.get $size - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $obj - local.get $obj - local.get $id - call $~lib/rt/itcms/Object#set:rtId - local.get $obj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $obj - global.get $~lib/rt/itcms/fromSpace - global.get $~lib/rt/itcms/white - call $~lib/rt/itcms/Object#linkTo - global.get $~lib/rt/itcms/total - local.get $obj - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $obj - i32.const 20 - i32.add - local.set $ptr - local.get $ptr - i32.const 0 - local.get $size - memory.fill $0 - local.get $ptr - ) - (func $start:rt/instanceof (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - global.get $~lib/memory/__stack_pointer - i32.const 72 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 72 - memory.fill $0 - memory.size $0 - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 144 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 176 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 320 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $rt/instanceof/Animal#constructor - global.set $rt/instanceof/animal - i32.const 0 - call $rt/instanceof/Cat#constructor - global.set $rt/instanceof/cat - i32.const 0 - call $rt/instanceof/BlackCat#constructor - global.set $rt/instanceof/blackcat - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/animal - local.tee $0 - i32.store $0 - local.get $0 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $0 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/animal - local.tee $1 - i32.store $0 offset=4 - local.get $1 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $1 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 11 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/cat - local.tee $2 - i32.store $0 offset=8 - local.get $2 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $2 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/cat - local.tee $3 - i32.store $0 offset=12 - local.get $3 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $3 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/blackcat - local.tee $4 - i32.store $0 offset=16 - local.get $4 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $4 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/blackcat - local.tee $5 - i32.store $0 offset=20 - local.get $5 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $5 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $rt/instanceof/Animal#constructor - global.set $rt/instanceof/nullableAnimal - i32.const 0 - call $rt/instanceof/Cat#constructor - global.set $rt/instanceof/nullableCat - i32.const 0 - call $rt/instanceof/BlackCat#constructor - global.set $rt/instanceof/nullableBlackcat - global.get $rt/instanceof/nullableAnimal - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 25 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableAnimal - local.tee $6 - i32.store $0 offset=24 - local.get $6 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $6 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 26 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableAnimal - local.tee $7 - i32.store $0 offset=28 - local.get $7 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $7 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 27 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullableCat - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 29 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableCat - local.tee $8 - i32.store $0 offset=32 - local.get $8 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $8 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 30 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableCat - local.tee $9 - i32.store $0 offset=36 - local.get $9 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $9 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 31 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullableBlackcat - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 33 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableBlackcat - local.tee $10 - i32.store $0 offset=40 - local.get $10 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $10 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 34 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableBlackcat - local.tee $11 - i32.store $0 offset=44 - local.get $11 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $11 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullAnimal - i32.const 0 - i32.ne - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 41 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullAnimal - local.tee $12 - i32.store $0 offset=48 - local.get $12 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $12 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 42 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullAnimal - local.tee $13 - i32.store $0 offset=52 - local.get $13 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $13 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullCat - i32.const 0 - i32.ne - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 45 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullCat - local.tee $14 - i32.store $0 offset=56 - local.get $14 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $14 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 46 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullCat - local.tee $15 - i32.store $0 offset=60 - local.get $15 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $15 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 47 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullBlackcat - i32.const 0 - i32.ne - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 49 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullBlackcat - local.tee $16 - i32.store $0 offset=64 - local.get $16 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $16 - call $~instanceof|rt/instanceof/Cat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 50 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullBlackcat - local.tee $17 - i32.store $0 offset=68 - local.get $17 - i32.eqz - if (result i32) - i32.const 0 - else - local.get $17 - call $~instanceof|rt/instanceof/BlackCat - end - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 51 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 72 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~instanceof|rt/instanceof/Cat (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance - local.get $0 - call $~instanceof|rt/instanceof/BlackCat - br_if $is_instance - i32.const 0 - return - end - i32.const 1 - ) - (func $~instanceof|rt/instanceof/BlackCat (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance - i32.const 0 - return - end - i32.const 1 - ) - (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) - (local $1 i32) - global.get $rt/instanceof/animal - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/cat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/blackcat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableAnimal - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableCat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableBlackcat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullAnimal - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullCat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullBlackcat - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 224 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load $0 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/rt/__visit_members (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - block $invalid - block $rt/instanceof/BlackCat - block $rt/instanceof/Cat - block $rt/instanceof/Animal - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/instanceof/Animal $rt/instanceof/Cat $rt/instanceof/BlackCat $invalid - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:rt/instanceof - ) - (func $~stack_check (type $none_=>_none) - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 33328 - i32.const 33376 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/instanceof/Animal#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $rt/instanceof/Cat#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - local.get $this - call $rt/instanceof/Animal#constructor - local.tee $this - i32.store $0 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $rt/instanceof/BlackCat#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - local.get $this - call $rt/instanceof/Cat#constructor - local.tee $this - i32.store $0 - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) -) diff --git a/tests/compiler/rt/instanceof.json b/tests/compiler/rt/instanceof.json deleted file mode 100644 index d89aa6d3b8..0000000000 --- a/tests/compiler/rt/instanceof.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "asc_flags": [ - "--exportStart", "_start" - ] -} diff --git a/tests/compiler/rt/instanceof.release.wat b/tests/compiler/rt/instanceof.release.wat deleted file mode 100644 index b9d83a887c..0000000000 --- a/tests/compiler/rt/instanceof.release.wat +++ /dev/null @@ -1,2069 +0,0 @@ -(module - (type $none_=>_none (func_subtype func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $none_=>_i32 (func_subtype (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) - (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $rt/instanceof/animal (mut i32) (i32.const 0)) - (global $rt/instanceof/cat (mut i32) (i32.const 0)) - (global $rt/instanceof/blackcat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableAnimal (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableCat (mut i32) (i32.const 0)) - (global $rt/instanceof/nullableBlackcat (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34324)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) "<") - (data (i32.const 1048) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1100) "<") - (data (i32.const 1112) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 1228) "<") - (data (i32.const 1240) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1292) ",") - (data (i32.const 1304) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1372) "<") - (data (i32.const 1384) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1436) "<") - (data (i32.const 1448) "\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") - (data (i32.const 1504) "\06\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 1532) " \00\00\00\00\00\00\00 \00\00\00\03\00\00\00 \00\00\00\04") - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots (type $none_=>_none) - (local $0 i32) - (local $1 i32) - global.get $rt/instanceof/animal - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $rt/instanceof/cat - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $rt/instanceof/blackcat - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableAnimal - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableCat - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $rt/instanceof/nullableBlackcat - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - i32.const 1248 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1056 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 159 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load $0 - local.tee $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $3 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load $0 offset=8 - local.set $5 - local.get $1 - i32.load $0 offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store $0 offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store $0 offset=4 - end - local.get $1 - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - i32.eq - if - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store $0 offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load $0 offset=4 - i32.const -2 - local.get $2 - i32.rotl - i32.and - local.set $2 - local.get $1 - local.get $2 - i32.store $0 offset=4 - local.get $2 - i32.eqz - if - local.get $0 - local.get $0 - i32.load $0 - i32.const -2 - local.get $3 - i32.rotl - i32.and - i32.store $0 - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load $0 - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load $0 - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store $0 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load $0 - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load $0 - local.tee $1 - i32.load $0 - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store $0 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store $0 - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store $0 - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $5 - local.get $2 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store $0 offset=4 - local.get $1 - local.get $3 - i32.store $0 offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store $0 offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store $0 offset=96 - local.get $0 - local.get $0 - i32.load $0 - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store $0 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load $0 offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store $0 offset=4 - ) - (func $~lib/rt/tlsf/addMemory (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $2 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 377 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load $0 offset=1568 - local.tee $4 - if - local.get $4 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 384 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $4 - i32.load $0 - local.set $3 - local.get $1 - i32.const 16 - i32.sub - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 397 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $2 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $3 - i32.const 2 - i32.and - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.const 1 - i32.or - i32.or - i32.store $0 - local.get $1 - i32.const 0 - i32.store $0 offset=4 - local.get $1 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $2 - i32.const 2 - i32.store $0 - local.get $0 - local.get $2 - i32.store $0 offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize (type $none_=>_none) - (local $0 i32) - (local $1 i32) - memory.size $0 - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow $0 - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34336 - i32.const 0 - i32.store $0 - i32.const 35904 - i32.const 0 - i32.store $0 - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34336 - i32.add - i32.const 0 - i32.store $0 offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34336 - i32.add - i32.const 0 - i32.store $0 offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 34336 - i32.const 35908 - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store $0 offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34324 - i32.lt_u - if - local.get $0 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store $0 offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load $0 offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34324 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34324 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load $0 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load $0 - i32.const 1 - i32.or - i32.store $0 - local.get $1 - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store $0 offset=4 - local.get $0 - local.get $0 - i32.store $0 offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load $0 offset=4 - i32.const -2 - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - else - local.get $0 - i32.load $0 - i32.const -2 - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 343 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz - if - 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$~lib/rt/itcms/interrupt - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size $0 - local.tee $1 - i32.const 4 - local.get $2 - i32.load $0 offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $1 - local.get $3 - i32.gt_s - select - memory.grow $0 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow $0 - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size $0 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load $0 - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store $0 - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store $0 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and - i32.store $0 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load $0 - i32.const -3 - i32.and - i32.store $0 - end - local.get $1 - local.get $0 - i32.store $0 offset=12 - local.get $1 - i32.const 0 - i32.store $0 offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load $0 offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load $0 - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.const 0 - memory.fill $0 - local.get $0 - ) - (func $start:rt/instanceof (type $none_=>_none) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 72 - 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 - i32.const 0 - i32.const 72 - memory.fill $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 34324 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store $0 - i32.const 1176 - i32.const 1168 - i32.store $0 - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store $0 - i32.const 1208 - i32.const 1200 - i32.store $0 - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store $0 - i32.const 1352 - i32.const 1344 - i32.store $0 - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $rt/instanceof/Animal#constructor - global.set $rt/instanceof/animal - i32.const 0 - call $rt/instanceof/Cat#constructor - global.set $rt/instanceof/cat - call $rt/instanceof/BlackCat#constructor - global.set $rt/instanceof/blackcat - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/animal - local.tee $0 - i32.store $0 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat - end - i32.const 1 - end - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/animal - local.tee $0 - i32.store $0 offset=4 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 11 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/cat - local.tee $0 - i32.store $0 offset=8 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat8 (result i32) - block $is_instance9 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance9 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance9 - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat8 - end - i32.const 1 - end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/cat - local.tee $0 - i32.store $0 offset=12 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/blackcat - local.tee $0 - i32.store $0 offset=16 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat12 (result i32) - block $is_instance13 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance13 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance13 - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat12 - end - i32.const 1 - end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/blackcat - local.tee $0 - i32.store $0 offset=20 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $rt/instanceof/Animal#constructor - global.set $rt/instanceof/nullableAnimal - i32.const 0 - call $rt/instanceof/Cat#constructor - global.set $rt/instanceof/nullableCat - call $rt/instanceof/BlackCat#constructor - global.set $rt/instanceof/nullableBlackcat - global.get $rt/instanceof/nullableAnimal - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 25 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableAnimal - local.tee $0 - i32.store $0 offset=24 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat16 (result i32) - block $is_instance17 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance17 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance17 - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat16 - end - i32.const 1 - end - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 26 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableAnimal - local.tee $0 - i32.store $0 offset=28 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 27 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullableCat - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 29 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableCat - local.tee $0 - i32.store $0 offset=32 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat20 (result i32) - block $is_instance21 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance21 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance21 - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat20 - end - i32.const 1 - end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 30 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableCat - local.tee $0 - i32.store $0 offset=36 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - if - i32.const 0 - i32.const 1456 - i32.const 31 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $rt/instanceof/nullableBlackcat - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 33 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableBlackcat - local.tee $0 - i32.store $0 offset=40 - local.get $0 - if (result i32) - block $__inlined_func$~instanceof|rt/instanceof/Cat26 (result i32) - block $is_instance27 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 4 - i32.eq - br_if $is_instance27 - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - br_if $is_instance27 - i32.const 0 - br $__inlined_func$~instanceof|rt/instanceof/Cat26 - end - i32.const 1 - end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 34 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $rt/instanceof/nullableBlackcat - local.tee $0 - i32.store $0 offset=44 - local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - i32.const 5 - i32.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 offset=48 - local.get $0 - i32.const 0 - i32.store $0 offset=52 - local.get $0 - i32.const 0 - i32.store $0 offset=56 - local.get $0 - i32.const 0 - i32.store $0 offset=60 - local.get $0 - i32.const 0 - i32.store $0 offset=64 - local.get $0 - i32.const 0 - i32.store $0 offset=68 - local.get $0 - i32.const 72 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) - block $invalid - block $rt/instanceof/BlackCat - block $rt/instanceof/Cat - block $rt/instanceof/Animal - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load $0 - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/instanceof/Animal $rt/instanceof/Cat $rt/instanceof/BlackCat $invalid - end - return - end - return - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start (type $none_=>_none) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:rt/instanceof - ) - (func $rt/instanceof/Animal#constructor (type $i32_=>_i32) (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $rt/instanceof/Cat#constructor (type $i32_=>_i32) (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i32.const 0 - i32.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $rt/instanceof/Animal#constructor - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $rt/instanceof/BlackCat#constructor (type $none_=>_i32) (result i32) - (local $0 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 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 $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $rt/instanceof/Cat#constructor - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 147 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34324 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 127 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 131 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1504 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 22 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 3 - i32.shl - i32.const 1508 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) -) diff --git a/tests/compiler/rt/instanceof.ts b/tests/compiler/rt/instanceof.ts deleted file mode 100644 index 243bda7f48..0000000000 --- a/tests/compiler/rt/instanceof.ts +++ /dev/null @@ -1,51 +0,0 @@ -class Animal {} -class Cat extends Animal {} -class BlackCat extends Cat {} - -var animal: Animal = new Animal(); -var cat: Animal = new Cat(); -var blackcat: Animal = new BlackCat(); - -assert(animal instanceof Animal); // static true -assert(!(animal instanceof Cat)); // dynamic false -assert(!(animal instanceof BlackCat)); // dynamic false - -assert(cat instanceof Animal); // static true -assert(cat instanceof Cat); // dynamic true -assert(!(cat instanceof BlackCat)); // dynamic false - -assert(blackcat instanceof Animal); // static true -assert(blackcat instanceof Cat); // dynamic true -assert(blackcat instanceof BlackCat); // dynamic true - -var nullableAnimal: Animal | null = new Animal(); -var nullableCat: Animal | null = new Cat(); -var nullableBlackcat: Animal | null = new BlackCat(); - -assert(nullableAnimal instanceof Animal); // static true -assert(!(nullableAnimal instanceof Cat)); // dynamic false -assert(!(nullableAnimal instanceof BlackCat)); // dynamic false - -assert(nullableCat instanceof Animal); // static true -assert(nullableCat instanceof Cat); // dynamic true -assert(!(nullableCat instanceof BlackCat)); // dynamic false - -assert(nullableBlackcat instanceof Animal); // static true -assert(nullableBlackcat instanceof Cat); // dynamic true -assert(nullableBlackcat instanceof BlackCat); // dynamic true - -var nullAnimal: Animal | null = null; -var nullCat: Animal | null = null; -var nullBlackcat: Animal | null = null; - -assert(!(nullAnimal instanceof Animal)); // static false -assert(!(nullAnimal instanceof Cat)); // dynamic false -assert(!(nullAnimal instanceof BlackCat)); // dynamic false - -assert(!(nullCat instanceof Animal)); // static false -assert(!(nullCat instanceof Cat)); // dynamic false -assert(!(nullCat instanceof BlackCat)); // dynamic false - -assert(!(nullBlackcat instanceof Animal)); // static false -assert(!(nullBlackcat instanceof Cat)); // dynamic false -assert(!(nullBlackcat instanceof BlackCat)); // dynamic false